按日期对Javascript数组对象排序
问题描述:
虽然我在其他几篇文章中看到过这个问题,但由于我从Twitter收到的数据,我的情况似乎略有不同。按日期对Javascript数组对象排序
下面是我用来排序JavaScript Array对象的逻辑,但问题似乎是由于日期格式的类型,逻辑实际上并未对数据进行排序。从Twitter的原始日期
样本格式:星期一1月18日17时24分46秒+0000 2016
var UserArraySorted = UserArray.sort(function(a,b){
return new Date(a.createddate.substring(0,20)) - new Date(b.createddate.substring(0,20));
});
for(i=0;i < UserArraySorted.length;i++){//Perform some logic here}
反正是有根据我在我的代码中指定的createddate场我的数组排序?
答
你已经差不多了。
下面的代码:
var UserArray = [{
name: 'Diane',
createddate: '8/13/2014, 3:45:56 PM'
}, {
name: 'Jane',
createddate: '5/15/2015, 4:19:03 PM'
}, {
name: 'Mary',
createddate: '7/7/2013, 1:45:00 PM'
}];
UserArray.sort(function(a, b) {
return new Date(a.createddate) - new Date(b.createddate);
});
for (var i = 0; i < UserArray.length; i++) {
console.log(UserArray[i]);
}
输出:
Object {name: "Mary", createddate: "7/7/2013, 1:45:00 PM"}
Object {name: "Diane", createddate: "8/13/2014, 3:45:56 PM"}
Object {name: "Jane", createddate: "5/15/2015, 4:19:03 PM"}
注意:使用数组排序函数将实际的数组排序。您将结果数组分配给一个新的变量名称UserArraySorted意味着原始UserArray没有更改(不确定这是否是您的意图)。
如果您不想更改原始数组顺序,则必须使用地图并对其进行排序。
无论如何,将字符串转换为日期类型应按日期排序。
尝试新日期(Date.parse(a.createddate)) – ryan0319
看看这个问题:http://stackoverflow.com/questions/7555025/jquery-fastest-way-to-sort-an-array-通过时间戳 – Tewdyn