Cara Mengisih Tatasusunan Objek mengikut Pelbagai Medan
Mengisih tatasusunan objek mengikut berbilang medan boleh dicapai dengan merantai pelbagai perbandingan fungsi.
Contoh
Pertimbangkan tatasusunan objek berikut yang mewakili rumah:
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 mengikut bandar (menaik) dan kemudian mengikut harga (menurun), gunakan pendekatan berikut:
homes.sort(function (a, b) { // Compare city fields var cityDelta = a.city.localeCompare(b.city); if (cityDelta !== 0) { // If cities differ, return comparison result return cityDelta; } // If cities are the same, compare prices in descending order return b.price - a.price; });
Umum Pendekatan
Pendekatan ini boleh digeneralisasikan kepada sebarang bilangan medan pengisihan. Lelaran melalui medan pengisihan yang diingini dalam susunan yang dikehendaki, dan bandingkan nilai untuk setiap medan. Jika delta bukan sifar ditemui, kembalikan hasilnya; jika tidak, teruskan ke medan seterusnya.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Objek mengikut Pelbagai Medan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!