Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
176
rated 0 times [  182] [ 6]  / answers: 1 / hits: 77494  / 11 Years ago, thu, october 17, 2013, 12:00:00

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.


More From » arrays

 Answers
4

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


[#74921] Wednesday, October 16, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jaleelh

Total Points: 661
Total Questions: 125
Total Answers: 103

Location: Sweden
Member since Mon, May 8, 2023
1 Year ago
;