简体   繁体   中英

How order array descending by date and time?

I have array of objects:

[{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"}]

I neet to order array above descending by 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"}]

How can I implement it in javascript?

You can use 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) 

Simply sort it with sort and String#localeCompare .

This is possible, while the date is an ISO6801 and that is a sortable string.

 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); 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM