【发布时间】:2022-01-06 14:48:20
【问题描述】:
我希望根据当前日期对数组中的值进行排序。
我的价值观:
[{
date: "12-28",
id: 1
}, {
date: "11-30",
id: 2
}, {
date: "09-30",
id: 3
}, {
date: "05-30",
id: 4
}]
我试图做这样的事情,但它并没有真正起作用:
var array = [{id: 1, date:'12-28'},
{id: 2, date:'11-30'},
{id: 3, date:'09-30'},
{id: 4, date:'05-30'}];
const now = Date.now();
array.sort(function(a, b) {
var c = new Date(a.date);
var d = new Date(b.date);
return (now-c)-(now-d);
});
console.log(array);
如果是 11 月 29 日:
[{
date: "11-30",
id: 2
}, {
date: "12-28",
id: 1
}, {
date: "05-30",
id: 4
}, {
date: "09-30",
id: 3
}]
【问题讨论】:
-
你能添加一个你想要数据的输出示例吗?
-
您想按照与当前日期的接近程度对它们进行排序吗?如果是这样,那么
2000-12-28将最接近2021-11-29。 -
你好,我主要是想按月和日排序,年份对我来说并不重要
-
如果在 11 月 29 日之前排序,根据您的输出,我无法理解您的排序。您是否尝试将 11 月 29 日之后的日期放在首位,然后放在最后一个日期之前?
-
让我换一种说法。假设每个日期都是生日。我希望能够根据当前日期显示下一个生日。如果是 11 月 29 日,下一个生日是:
11-30、12-28、05-30、09-30
标签: javascript arrays sorting