複数のフィールドでオブジェクトの配列を並べ替える方法
複数のフィールドでオブジェクトの配列を並べ替えるには、多重比較を連鎖させます。関数。
例
家を表す次のオブジェクトの配列を考えます。
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"} ];
この配列を都市 (昇順) で並べ替えます。価格順(降順)には、次を使用しますアプローチ:
homes.sort(function (a, b) { // Compare city fields var cityDelta = a.city.localeCompare(b.city); if (cityDelta !== 0) { // If cities differ, return comparison result return cityDelta; } // If cities are the same, compare prices in descending order return b.price - a.price; });
一般的なアプローチ
このアプローチは、任意の数の並べ替えフィールドに一般化できます。希望の並べ替えフィールドを希望の順序で繰り返し、各フィールドの値を比較します。ゼロ以外のデルタが見つかった場合は、結果を返します。それ以外の場合は、次のフィールドに進みます。
以上がオブジェクトの配列を複数のフィールドで並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。