【发布时间】:2021-03-29 02:13:16
【问题描述】:
我有一个包含如下对象的数组:
{
Title: "Title",
Url: "myUrl",
publishedDate: "19/01/2021"
},
{
Title: "Title 2",
Url: "myUrl",
publishedDate: "17/12/2020"
},
{
Title: "Title 3",
Url: "myUrl",
publishedDate: "11/03/2021"
},
{
Title: "Title 4",
Url: "myUrl",
publishedDate: "11/12/2020"
}
我已将它们保存在我的状态(数组)中。
this.state.data
我想根据属性“publishedDate”对对象进行排序(由于内存效率,不使用 new Date())。我试试:
console.log(this.state.data.sort(function(a, b) {
var c = new Date(a.publishedDate);
var d = new Date(b.publishedDate);
return c.getTime() - d.getTime();
}))
但对象不按顺序排列。代码有什么问题?游乐场:
【问题讨论】:
-
“并且由于内存效率问题而没有使用新的 Date()” - 为什么
new Date()会成为问题? -
因为在排序函数内部分配内存。在这里讨论过:stackoverflow.com/questions/10123953/…
-
你有什么尝试自己解决这个问题的?将日期拆分为各个部分并进行比较应该不难
-
是的,您可以这样做,只需编写您自己的 compareDates 函数即可。使用“/”作为分隔符在他的 3 个组件中拆分日期
-
只有一个评论,没有任何进一步的事实来证明其假设。如果没有使用分析器进行详尽的分析,您真的不应该考虑“内存效率”。
标签: javascript reactjs typescript