I have following array:
var events = [
{id : 1, start : 100, end : 120},
{id : 2, start : 60, end : 240},
{id : 3, start : 700, end : 720}
];
How do I sort based on start index while preserving the id something like:
var events = [
{id : 2, start : 60, end : 240},
{id : 1, start : 100, end : 120},
{id : 3, start : 700, end : 720}
];
I tried:
events.sort()
events.sort(function(a,b){return a-b});
But neither worked :(
asked May 13, 2012 at 7:19
Sarfraz
384k81 gold badges561 silver badges613 bronze badges
-
Possible duplicate of Sorting an array of JavaScript objectsdiziaq– diziaq2015年12月02日 05:22:39 +00:00Commented Dec 2, 2015 at 5:22
1 Answer 1
The array.sort(..) function passes two elements of the array (which are being compared) to the comparator function you specify. Since, in that case, a and b are objects like {id : 3, start : 700, end : 720}, they can not be really compared like a-b.
Use this instead:
events.sort(function(a,b){return a.start - b.start;});
answered May 13, 2012 at 7:24
UltraInstinct
44.7k12 gold badges86 silver badges108 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
lang-js