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.
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.
To sort an array of objects, you use the sort() method and provide a comparison function that determines the order of objects.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With