オブジェクト配列の複数フィールドの並べ替え
オブジェクトの配列内の複数のフィールドに基づいて並べ替えが必要な場合、連鎖並べ替えというアプローチを採用することができます。このメソッドでは、ゼロ以外の差が得られるまで、各フィールドの値を順番に比較します。
実装
次のオブジェクトの配列を考えます。
var homes = [ {"h_id":"3", "city":"Dallas", "state":"TX", "zip":"75201", "price":"162500"}, {"h_id":"4", "city":"Bevery Hills", "state":"CA", "zip":"90210", "price":"319250"}, {"h_id":"6", "city":"Dallas", "state":"TX", "zip":"75000", "price":"556699"}, {"h_id":"5", "city":"New York", "state":"NY", "zip":"00010", "price":"962500"} ];
この配列を都市 (昇順) に基づいて並べ替え、次に価格 (降順) に基づいて並べ替えるには、次の並べ替えを使用します。 function:
data.sort(function (a, b) { return a.city.localeCompare(b.city) || b.price - a.price; });
説明
sort 関数は引数としてコールバックを受け取り、2 つのオブジェクト a と b を比較します。要素の順序を決定する値を返します:
出力例
ソート後、homes 配列は次のように再配置されます。 :
[{ "h_id": "3", "city": "Dallas", "state": "TX", "zip": "75201", "price": "162500" }, { "h_id": "6", "city": "Dallas", "state": "TX", "zip": "75000", "price": "556699" }, { "h_id": "4", "city": "Bevery Hills", "state": "CA", "zip": "90210", "price": "319250" }, { "h_id": "5", "city": "New York", "state": "NY", "zip": "00010", "price": "962500" }]
以上がJavaScript で複数のフィールドを使用してオブジェクトの配列を並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。