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

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

Susan Sarandon
リリース: 2024-12-25 16:09:24
オリジナル
367 人が閲覧しました

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

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