ホームページ > 記事 > ウェブフロントエンド > キーを使用してオブジェクトを日付値で並べ替えるにはどうすればよいですか?
キーを使用した日付値によるオブジェクトの並べ替え
日付値を持つ単一のキーによってオブジェクトの配列を効率的に並べ替えるには、次のようにします。 「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 サイトの他の関連記事を参照してください。