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

JavaScript オブジェクトのプロパティを値で並べ替えるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-25 16:09:24370ブラウズ

How Can I Sort JavaScript Object Properties by Their Values?

オブジェクトのプロパティを値で並べ替える

JavaScript でオブジェクトのプロパティを値に基づいて並べ替えるには、独創的な回避策を使用できます。オブジェクト プロパティの実装依存の順序に依存するのではなく、オブジェクト プロパティを配列に変換し、配列を並べ替えて、オブジェクトを再作成できます。

これを実現するには、オブジェクト プロパティを、ループ:

let sortable = [];
for (var vehicle in maxSpeed) {
    sortable.push([vehicle, maxSpeed[vehicle]]);
}

配列形式になったら、sort 関数を利用して要素を値で並べ替えることができます:

sortable.sort(function(a, b) {
    return a[1] - b[1];
});

これにより、ソートされた順序の配列:

// [["bike", 60], ["motorbike", 200], ["car", 300],
// ["helicopter", 400], ["airplane", 1000], ["rocket", 28800]]

ソートされた配列から、目的の順序を維持しながらオブジェクトを再構築できます:

let objSorted = {}
sortable.forEach(function(item){
    objSorted[item[0]]=item[1]
})

あるいは、ES8 が利用可能な場合は、オブジェクトを配列に変換する Object.entries および Reduce メソッド:

const sortable = Object.entries(maxSpeed)
    .sort(([,a],[,b]) => a-b)
    .reduce((r, [k, v]) => ({ ...r, [k]: v }), {});

このアプローチは、実装上の理由から依然として回避策です。 JavaScript のオブジェクト プロパティの順序に依存することは避けるべきです。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。