オブジェクトのプロパティを値で並べ替える
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 サイトの他の関連記事を参照してください。