2012-05-13 2 views
0

Я следующий массив:JS Сортировка массива

var events = [ 
{id : 1, start : 100, end : 120}, 
{id : 2, start : 60, end : 240}, 
{id : 3, start : 700, end : 720} 
]; 

Как-то на основе start индекса при сохранении id что-то вроде:

var events = [ 
{id : 2, start : 60, end : 240}, 
{id : 1, start : 100, end : 120}, 
{id : 3, start : 700, end : 720} 
]; 

Я пробовал:

events.sort() 
events.sort(function(a,b){return a-b}); 

Но ни одна работала :(

+0

Возможный дубликат [Сортировка массива объектов JavaScript] (http://stackoverflow.com/questions/979256/sorting-an-array-of-javascript-objects) – diziaq

ответ

5

Функция array.sort(..) передает два элемента массива (которые сравниваются) с указанной вами функцией компаратора. Так как в этом случае a и b являются объектами, такими как {id : 3, start : 700, end : 720}, их нельзя сравнивать по-настоящему, как a-b.

Используйте вместо этого:

events.sort(function(a,b){return a.start - b.start;}); 
Смежные вопросы