如何按日期和时间降序排列数组?

How order array descending by date and time?

我有对象数组:

[{id:'124',name:'ttt', MeasureDate:"2015-04-05T18:46:38"}, 
 {id:'589',name:'mmm', MeasureDate:"2015-05-05T18:46:38"}, 
 {id:'45',name:'yyy' , MeasureDate:"2016-01-05T18:46:38"},
 {id:'567',name:'eee', MeasureDate:"2016-05-05T18:46:38"}]

我需要按 date and time:

对数组进行排序
[{id:'567',name:'eee', MeasureDate:"2016-05-05T18:46:38"},
 {id:'45',name:'yyy' , MeasureDate:"2016-01-05T18:46:38"},
 {id:'589',name:'mmm', MeasureDate:"2015-05-05T18:46:38"},
 {id:'124',name:'ttt', MeasureDate:"2015-04-05T18:46:38"}]

如何在 javascript 中实现它?

您可以使用sort and Date.parse

var data = [{id:'124',name:'ttt', MeasureDate:"2015-04-05T18:46:38"}, 
 {id:'589',name:'mmm', MeasureDate:"2015-05-05T18:46:38"}, 
 {id:'45',name:'yyy' , MeasureDate:"2016-01-05T18:46:38"},
 {id:'567',name:'eee', MeasureDate:"2016-05-05T18:46:38"}];
 
var sorted = data.sort(function(a, b) {
  return Date.parse(b.MeasureDate) - Date.parse(a.MeasureDate);
});

console.log(sorted)

只需用sort和String#localeCompare排序即可。

这是可能的,而日期是 ISO6801 并且是可排序的字符串。

var array = [{id:'124',name:'ttt', MeasureDate:"2015-04-05T18:46:38"}, {id:'589',name:'mmm', MeasureDate:"2015-05-05T18:46:38"}, {id:'45',name:'yyy', MeasureDate:"2016-01-05T18:46:38"}, {id:'567',name:'eee', MeasureDate:"2016-05-05T18:46:38"}];

array.sort(function (a, b) {
    return b.MeasureDate.localeCompare(a.MeasureDate);
});

console.log(array);