キーを使用してオブジェクトを日付値で並べ替えるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-02 21:41:30
オリジナル
755 人が閲覧しました

How to Sort Objects by Date Value Using a Key?

キーを使用した日付値によるオブジェクトの並べ替え

日付値を持つ単一のキーによってオブジェクトの配列を効率的に並べ替えるには、次のようにします。 「updated_at」では、組み込みの Array.sort メソッドを利用できます。次の配列について考えてみましょう。

[
    {
        "updated_at" : "2012-01-01T06:25:24Z",
        "foo" : "bar"
    },
    {
        "updated_at" : "2012-01-09T11:25:13Z",
        "foo" : "bar"
    },
    {
        "updated_at" : "2012-01-05T04:13:24Z",
        "foo" : "bar"
    }
]
ログイン後にコピー

これらのオブジェクトを「updated_at」で昇順に並べ替えるには、sort メソッドで次のカスタム コンパレータ関数を使用できます。

var arr = [{
    "updated_at": "2012-01-01T06:25:24Z",
    "foo": "bar"
  },
  {
    "updated_at": "2012-01-09T11:25:13Z",
    "foo": "bar"
  },
  {
    "updated_at": "2012-01-05T04:13:24Z",
    "foo": "bar"
  }
]

arr.sort(function(a, b) {
  var keyA = new Date(a.updated_at),
    keyB = new Date(b.updated_at);
  if (keyA < keyB) return -1;
  if (keyA > keyB) return 1;
  return 0;
});

console.log(arr);
ログイン後にコピー

この例では、コンパレーター関数では、Date() コンストラクターを使用して「updated_at」値を Date オブジェクト (keyA および keyB) に変換します。次に、比較演算子 (<、>、==) を使用してこれらの Date オブジェクトを比較します。 keyA が keyB より前の場合、関数は -1 を返し、配列内のオブジェクトを交換する必要があることを示します。 keyA が keyB より後の場合、関数は 1 を返し、並べ替えられた配列内で keyA が keyB の後に現れるようにします。戻り値 0 は、オブジェクトが同じ位置にあり、入れ替えが必要ないことを示します。

この並べ替え手法では、オブジェクトが「updated_at」日付値によって効率的に昇順に並べられます。比較演算子を変更して、降順など、さまざまな並べ替え順序を実現できます。

以上がキーを使用してオブジェクトを日付値で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート