如何按多個欄位對物件陣列進行排序
按多個欄位對物件陣列進行排序可以透過連結多個比較來實現函數。
範例
考慮以下表示房屋的物件陣列:
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"} ];
依城市(升序)對此陣列進行排序,然後按價格(降序),使用以下方法:
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; });
通用方法
此方法可以推廣到任意數量的排序欄位。依所需順序迭代所需的排序字段,並比較每個字段的值。如果找到非零增量,則傳回結果;否則,繼續下一個欄位。
以上是如何按多個欄位對物件數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!