プロパティ値によるオブジェクトの並べ替え
JavaScript では、オブジェクトはキーと値のペアの順序付けされていないコレクションです。ただし、プロパティの値に基づいてオブジェクトを並べ替える必要がある場合もあります。これは、オブジェクトを配列に変換し、配列を値でソートし、ソートされた配列からオブジェクトを再構築することで実現できます。
提供された例を考えてみましょう。
var list = { "you": 100, "me": 75, "foo": 116, "bar": 15 };
To list のプロパティを値に基づいて並べ替えるには、次のことができます:
let sortable = []; for (let property in list) { sortable.push([property, list[property]]); } sortable.sort((a, b) => a[1] - b[1]); // [["bar", 15], ["me", 75], ["you", 100], ["foo", 116]]
これにより、次の部分配列を含む並べ替え可能な配列が作成されます。プロパティと値のペア。値に基づいて昇順に並べ替えられます。これで、ソートされた順序でオブジェクトを再構築できます:
let objSorted = {}; sortable.forEach(item => { objSorted[item[0]] = item[1]; });
これにより、ソートされたオブジェクトが得られます:
objSorted = { "bar": 15, "me": 75, "you": 100, "foo": 116 };
ES8 以降では、Object を使用してこのプロセスを簡素化できます。 events():
const maxSpeed = { car: 300, bike: 60, motorbike: 200, airplane: 1000, helicopter: 400, rocket: 8 * 60 * 60 }; const sortable = Object.entries(maxSpeed) .sort(([,a],[,b]) => a-b) .reduce((r, [k, v]) => ({ ...r, [k]: v }), {}); console.log(sortable);
これは、プロパティと値のペアの並べ替えられた配列をobject.
プロパティ値によるオブジェクトの並べ替えは可能ですが、JavaScript の実装の癖に依存しており、将来壊れる可能性があることに注意することが重要です。 JavaScript オブジェクト内の要素の順序についての仮定を避けることをお勧めします。
以上がJavaScript オブジェクトをプロパティ値で並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。