gpt4 book ai didi

javascript - 如何按日期对 Javascript 对象数组进行排序?

转载 作者:行者123 更新时间:2023-11-28 15:11:02 26 4
gpt4 key购买 nike

我在按日期值对对象数组进行排序时遇到问题。我发现其他用户之前问过很多问题,我尝试了所有可能的解决方案,但仍然没有找到解决我的排序问题的方法。我也创建了两个不同的数组来测试排序功能,但仍然无法以正确的顺序获取日期。这是我的数据:

[Object { eventDate="12/12/2016",  display_order="5"},Object { eventDate="12/12/2016",  display_order="3"}]

[Object { eventDate="04/21/2016", display_order="3"},Object { eventDate="04/21/2016", display_order="1"}]

我使用此逻辑按日期值对数据进行排序:

entries.sort(function(a,b){
var i = new Date(a.eventDate);
var j = new Date(b.eventDate);
return i-j;
});

使用此函数我的数据仍然没有按正确的顺序排序。然后我还尝试对数组进行排序,如下所示:

var dates = Object.keys(groupedByDate);

console.log(dates)

这是可变日期的输出:["12/12/2016", "04/21/2016"]

然后我尝试这样做:

dates.sort(function(a, b) {
a = new Date(a.dates);
b = new Date(b.dates);
return a>b ? -1 : a<b ? 1 : 0;
});

我的输出仍然没有按正确的顺序对日期进行排序。我不确定我是否做错了什么,或者在这种情况下可能有其他问题。如果有人可以提供帮助,请告诉我。谢谢。

最佳答案

这里的答案是正确的,但你不应该使用 Date 构造函数或 Date.parse 来解析字符串。使用库并传递格式,或编写一个简单的函数,例如

function parseMDY(s) {
var b = s.split('/');
return new Date(b[2],b[0]-1,b[1]);
}

document.write(parseMDY('4/30/2016'));

所以现在你有:

entries.sort(function(a,b) {
return parseMDY(a) - parseMDY(b);
});

关于javascript - 如何按日期对 Javascript 对象数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36478090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com