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(..)関数は、(比較される) 配列の 2 つの要素を、指定したコンパレータ関数に渡します。その場合、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 に答える