ホームページ > ウェブフロントエンド > jsチュートリアル > オブジェクトの配列を複数のフィールドで並べ替えるにはどうすればよいですか?

オブジェクトの配列を複数のフィールドで並べ替えるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-18 06:32:14
オリジナル
851 人が閲覧しました

How to Sort an Array of Objects by Multiple Fields?

複数のフィールドでオブジェクトの配列を並べ替える方法

複数のフィールドでオブジェクトの配列を並べ替えるには、多重比較を連鎖させます。関数。

家を表す次のオブジェクトの配列を考えます。

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 サイトの他の関連記事を参照してください。

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