Isih Tatasusunan Objek mengikut Pelbagai Medan
Dalam soalan asal, mengisih tatasusunan objek mengikut satu medan telah diselesaikan dengan cekap. Walau bagaimanapun, bagaimanakah kita boleh menggunakan isihan pada berbilang medan?
Untuk mengisih tatasusunan objek mengikut berbilang medan, kita boleh menggunakan pendekatan pengisihan berantai. Ini melibatkan pengisihan mengikut medan pertama dan kemudian, jika nilainya sama, teruskan mengisih mengikut medan kedua. Jika perlu, proses ini boleh diulang untuk lebih banyak medan.
Pertimbangkan contoh berikut di mana kita ingin mengisih susunan rumah 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"} ];
Untuk mengisih tatasusunan ini, kita boleh menggunakan kod JavaScript berikut:
homes.sort(function (a, b) { return a.city.localeCompare(b.city) || b.price - a.price; });
Begini caranya kod ini berfungsi:
Dengan menggunakan pendekatan pengisihan ini pada berbilang medan, kita boleh mengisih tatasusunan objek yang kompleks mengikut susunan yang dikehendaki dengan mudah.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisih Tatasusunan Objek mengikut Pelbagai Medan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!