Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengisih Tatasusunan Berbilang Medan dalam JavaScript?
Isih Tatasusunan Berbilang Medan
Dalam soalan terdahulu, kami menerokai isihan tatasusunan berdasarkan satu medan. Walau bagaimanapun, senario dunia sebenar selalunya memerlukan pengisihan pada berbilang kriteria. Artikel ini menunjukkan cara menyesuaikan pendekatan itu untuk pengisihan berbilang medan.
Contoh Khusus: Bandar dan Harga
Pertimbangkan tatasusunan Rumah berikut yang perlu kita isi mengikut bandar (menaik) dan kemudian harga (menurun):
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":"6", "city":"Dallas", "state":"TX", "zip":"75000", "price":"556699" }, { "h_id":"5", "city":"New York", "state":"NY", "zip":"00010", "price":"962500" } ];
Isih berbilang medan Pendekatan
Untuk mengisih berdasarkan berbilang medan, kita boleh menggunakan pendekatan pengisihan berantai yang melibatkan membandingkan nilai medan yang dipilih, satu demi satu, sehingga kita menemui perbezaan.
Pelaksanaan
data.sort(function (a, b) { return a.city.localeCompare(b.city) || b.price - a.price; });
Penjelasan
Output
[ { "h_id": "3", "city": "Dallas", "state": "TX", "zip": "75201", "price": "162500" }, { "h_id": "6", "city": "Dallas", "state": "TX", "zip": "75000", "price": "556699" }, { "h_id": "4", "city": "Bevery Hills", "state": "CA", "zip": "90210", "price": "319250" }, { "h_id": "5", "city": "New York", "state": "NY", "zip": "00010", "price": "962500" } ]
Pendekatan ini menyediakan penyelesaian yang fleksibel untuk menyusun tatasusunan pada berbilang medan. Ia boleh diubah suai dengan mudah untuk menampung sebarang bilangan kriteria pengisihan, menjadikannya sesuai untuk pelbagai jenis senario manipulasi data.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Berbilang Medan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!