Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengisih Tatasusunan Objek JavaScript mengikut Nilai Harta Tertentu (cth., Harga)?
Mengisih Objek mengikut Nilai Harta dalam JavaScript
Apabila mengendalikan tatasusunan objek, menyusunnya mengikut nilai harta tertentu boleh menjadi penting untuk mengurus dan menggambarkan data. Mari kita terokai cara untuk mencapai fungsi pengisihan ini menggunakan JavaScript.
Soalan:
Memandangkan pelbagai objek yang mewakili data rumah, bagaimana kita mencipta fungsi untuk mengisihnya mengikut harta "harga" mereka sama ada dalam tertib menaik atau menurun?
Objek Tatasusunan:
Pertimbangkan tatasusunan rumah berikut:
var homes = [ { "h_id": "3", "city": "Dallas", "state": "TX", "zip": "75201", "price": "162500" }, { "h_id": "4", "city": "Bevery Hills", "state": "CA", "zip": "90210", "price": "319250" }, { "h_id": "5", "city": "New York", "state": "NY", "zip": "00010", "price": "962500" } ];
Fungsi Isih:
Untuk mengisih tatasusunan rumah, kita boleh menggunakan kaedah sort() terbina dalam. Kaedah ini mengharapkan fungsi perbandingan sebagai hujahnya. Fungsi perbandingan mengambil dua elemen sebagai input dan mengembalikan nombor negatif jika elemen pertama harus didahulukan sebelum elemen kedua, nombor positif jika elemen kedua harus didahulukan sebelum elemen pertama, atau sifar jika elemen dianggap sama.
Tertib Menaik:
Untuk mengisih rumah dalam tertib menaik mengikut harga, kami mentakrifkan fungsi perbandingan yang menolak harga elemen pertama daripada harga daripada elemen kedua dan membandingkan perbezaannya. Jika perbezaannya negatif, ini bermakna harga elemen pertama adalah kurang daripada harga kedua, dan elemen pertama harus didahulukan sebelum elemen kedua.
homes.sort(function(a, b) { return parseFloat(a.price) - parseFloat(b.price); });
Atau dalam sintaks ES6:
homes.sort((a, b) => parseFloat(a.price) - parseFloat(b.price));
Aturan Menurun:
Untuk tertib menurun, kita boleh membalikkan fungsi perbandingan dengan menolak harga elemen kedua daripada harga elemen pertama.
homes.sort((a, b) => parseFloat(b.price) - parseFloat(a.price));
Keputusan:
Selepas mengisih, tatasusunan rumah akan diisih berdasarkan perintah yang ditentukan. Anda boleh mencetak tatasusunan yang diubah suai untuk mengesahkan pengisihan.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Objek JavaScript mengikut Nilai Harta Tertentu (cth., Harga)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!