Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to sort an array of objects by date?

I am trying to sort an array of objects with each object containing:

var recent = [{id: "123",age :12,start: "10/17/13 13:07"} , {id: "13",age :62,start: "07/30/13 16:30"}]; 

Date format is: mm/dd/yy hh:mm.

I want to sort in order of date with the most recent first. If date is same it should be sorted by their time parts.

I tried out the below sort() function, but it is not working:

recent.sort(function(a,b)) {     a = new Date(a.start);     b = new Date(b.start);     return a-b; }); 

Also how should I iterate over the objects for sorting? Something like:

for (var i = 0; i < recent.length; i++)     {         recent[i].start.sort(function (a, b)         {             a = new Date(a.start);             b = new Date(b.start);             return a-b;          } );     } 

There can be any number of objects in the array.

like image 808
Anthea Avatar asked Oct 17 '13 15:10

Anthea


People also ask

How do you sort an array by date?

To sort an array of objects by date property: Call the sort() method on the array. Subtract the date in the second object from the date in the first. Return the result.

Can we sort array of objects?

To sort an array of objects, you use the sort() method and provide a comparison function that determines the order of objects.


1 Answers

As has been pointed out in the comments, the definition of recent isn't correct javascript.

But assuming the dates are strings:

var recent = [     {id: 123,age :12,start: "10/17/13 13:07"},      {id: 13,age :62,start: "07/30/13 16:30"} ]; 

then sort like this:

recent.sort(function(a,b) {      return new Date(a.start).getTime() - new Date(b.start).getTime()  }); 

More details on sort function from W3Schools

like image 65
Chris Charles Avatar answered Sep 23 '22 20:09

Chris Charles