Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Isih Sifat Objek JavaScript mengikut Nilainya?

Bagaimanakah Saya Boleh Isih Sifat Objek JavaScript mengikut Nilainya?

Susan Sarandon
Lepaskan: 2024-12-25 16:09:24
asal
403 orang telah melayarinya

How Can I Sort JavaScript Object Properties by Their Values?

Mengisih Sifat Objek mengikut Nilai

Mengisih sifat objek berdasarkan nilainya dalam JavaScript boleh dicapai melalui penyelesaian yang bijak. Daripada bergantung pada susunan sifat objek yang bergantung kepada pelaksanaan, kita boleh menukarnya kepada tatasusunan, mengisih tatasusunan dan mencipta semula objek.

Untuk mencapai ini, kami memindahkan sifat objek ke dalam tatasusunan menggunakan gelung:

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

Setelah dalam bentuk tatasusunan, kita boleh menggunakan fungsi isihan untuk mengisih unsur mengikut value:

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

Ini menghasilkan tatasusunan dalam tertib diisih:

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

Daripada tatasusunan yang diisih, kita boleh membina semula objek sambil mengekalkan susunan yang dikehendaki:

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

Sebagai alternatif, jika ES8 tersedia, kita boleh menggunakan Object.entry dan mengurangkan kaedah untuk mengubah objek menjadi tatasusunan:

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

Pendekatan ini kekal sebagai penyelesaian kerana keanehan pelaksanaan dan seseorang harus mengelak daripada bergantung pada susunan sifat objek dalam JavaScript.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Sifat Objek JavaScript mengikut Nilainya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan