Mengisih Objek mengikut Nilai Harta
Dalam JavaScript, objek ialah koleksi tidak tertib pasangan nilai kunci. Walau bagaimanapun, mungkin terdapat situasi di mana kita perlu mengisih objek berdasarkan nilai sifatnya. Ini boleh dicapai dengan menukar objek kepada tatasusunan, mengisih tatasusunan mengikut nilai, dan kemudian membina semula objek daripada tatasusunan yang diisih.
Mari kita pertimbangkan contoh yang disediakan:
var list = { "you": 100, "me": 75, "foo": 116, "bar": 15 };
Kepada mengisih sifat senarai berdasarkan nilainya, kita boleh melakukan perkara berikut:
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]]
Ini mencipta tatasusunan yang boleh diisih yang mengandungi subarray pasangan nilai harta, yang kemudiannya diisih dalam tertib menaik berdasarkan nilai. Sekarang, kita boleh membina semula objek dalam susunan yang diisih:
let objSorted = {}; sortable.forEach(item => { objSorted[item[0]] = item[1]; });
Ini memberikan kita objek yang diisih:
objSorted = { "bar": 15, "me": 75, "you": 100, "foo": 116 };
Dalam ES8 dan ke atas, kita boleh memudahkan proses ini menggunakan Object. entries():
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);
Ini mengembalikan tatasusunan yang diisih pasangan nilai harta sebagai objek.
Adalah penting untuk ambil perhatian bahawa semasa mengisih objek mengikut nilai sifat adalah mungkin, ia bergantung pada kebiasaan pelaksanaan dalam JavaScript dan mungkin rosak pada masa hadapan. Adalah disyorkan untuk mengelakkan membuat andaian tentang susunan elemen dalam objek JavaScript.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Objek JavaScript mengikut Nilai Harta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!