0

配列にいくつかのオブジェクトがあります。オブジェクトには、日付文字列である「時間」プロパティがあります。

items = [
    {time: "2013-03-01T10:46:11Z"},
    {time: "2013-03-03T10:46:11Z"},
    {time: "2013-03-02T10:46:11Z"}
]

その「時間」プロパティで配列をソートしたいと思います。

Sort Javascript Object Array By DateJavascript Date Sortingを読みましたが、これらのソリューションのいずれか (日付オブジェクトへの変換または文字列としての並べ替え) を機能させることができないようです。

私のソート機能:

items.sort(function(first, second){
    return new Date(first.time) < new Date(second.time) ? 1 : -1;
})

結果のテスト:

items.forEach(function(item){
    console.log(item.time)
})

戻り値:

2013-03-01T10:46:11Z
2013-03-03T10:46:11Z
2013-03-02T10:46:11Z

3 月 1 日、3 月 3 日、3 月 2 日。

4

1 に答える 1

1

コンパレータ関数で「時間」ではなく「日付」フィールドを呼び出しています。また、関数はブール値ではなく整数を返す必要があります。

  return new Date(first.time) - new Date(second.time);

すべてのブラウザで機能するとは限りません。すべての時間が世界時である場合は、それらを文字列として比較してください。

  return first.time > second.time ? 1 : first.time === second.time ? 0 : -1;
于 2013-03-06T17:13:49.343 に答える