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

按日期对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;});

这对最近的日期进行了排序。


qq_遁去的一_1
浏览 1210回答 4
4回答

波斯汪

这里有一个很好、更简洁的答案:array.sort(function(a,b){return&nbsp;a.getTime()&nbsp;-&nbsp;b.getTime()});在此发现:Javascript中的排序日期

牛魔王的故事

在纠正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;});

慕工程0101907

您的数据需要一些更正: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){&nbsp;&nbsp;&nbsp; &nbsp; var dateA = new Date(a.date).getTime();&nbsp; &nbsp; var dateB = new Date(b.date).getTime();&nbsp; &nbsp; return dateA > dateB ? 1 : -1;&nbsp;&nbsp;};&nbsp;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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript