为了账号安全,请及时绑定邮箱和手机立即绑定

按日期对Javascript对象数组进行排序

按日期对Javascript对象数组进行排序

qq_遁去的一_1 2019-05-31 16:50:35
按日期对Javascript对象数组进行排序假设我有一个由几个对象组成的数组:var array = [{id: 1, date: Mar 12 2012 10:00:00 AM}, {id: 2, date: Mar 8 2012 08:00:00 AM}];如何根据Date元素对此数组进行排序,以便从最近到当前日期和时间的日期排序?请记住,数组可能有许多对象,但为了简单起见,我使用了2。我会使用排序函数和自定义比较器吗?更新在我的具体情况下,我希望从最近到最老的日期安排。最后,我不得不将简单函数的逻辑颠倒如下:array.sort(function(a, b) {     a = new Date(a.dateModified);     b = new Date(b.dateModified);     return a>b ? -1 : a<b ? 1 : 0;});这对最近的日期进行了排序。
查看完整描述

4 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

这里有一个很好、更简洁的答案:

array.sort(function(a,b){return a.getTime() - b.getTime()});

在此发现:Javascript中的排序日期


查看完整回答
反对 回复 2019-05-31
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

在纠正JSON之后,这个应该可以工作。


var array = [{id: 1, date:'Mar 12 2012 10:00:00 AM'},{id: 2, date:'Mar 8 2012 08:00:00 AM'}];



array.sort(function(a,b){

var c = new Date(a.date);

var d = new Date(b.date);

return c-d;

});


查看完整回答
反对 回复 2019-05-31
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

您的数据需要一些更正:


var array = [{id: 1, date: "Mar 12 2012 10:00:00 AM"},{id: 2, date: "Mar 28 2012 08:00:00 AM"}];

更正数据后,可以使用以下代码:


function sortFunction(a,b){  

    var dateA = new Date(a.date).getTime();

    var dateB = new Date(b.date).getTime();

    return dateA > dateB ? 1 : -1;  

}; 


var array = [{id: 1, date: "Mar 12 2012 10:00:00 AM"},{id: 2, date: "Mar 28 2012 08:00:00 AM"}];

array.sort(sortFunction);


查看完整回答
反对 回复 2019-05-31
  • 4 回答
  • 0 关注
  • 1209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号