0

我有以下数组:

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});

但都没有工作:(

4

1 回答 1

5

array.sort(..)函数将数组的两个元素(正在比较)传递给您指定的比较器函数。因为,在那种情况下,ab是类似的对象{id : 3, start : 700, end : 720},所以它们不能真正比较类似a-b

改用这个:

events.sort(function(a,b){return a.start - b.start;});
于 2012-05-13T07:24:50.723 回答