多字段數組排序
在先前的問題中,我們探討了基於單一欄位的陣列排序。然而,現實場景通常需要根據多個標準進行排序。本文示範如何採用此方法進行多字段排序。
具體範例:城市和價格
考慮以下 Homes數組,我們需要按城市排序(升序)然後價格(降序):
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" } ];
多字段排序方法
要基於多個字段進行排序,我們可以使用鍊式排序方法,此方法涉及一次比較所選欄位的值,直到找到一個
實作
data.sort(function (a, b) { return a.city.localeCompare(b.city) || b.price - a.price; });
說明
說明
[ { "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" } ]
說明
說明localeCompare方法用於比較城市值.如果城市值相等,我們減去價格b 來自 a 的值,以降序對價格進行排序。 結果陣列按城市(升序)排序,然後按價格(降序)排序。 輸出這種方法為在多個欄位上對陣列進行排序提供了靈活的解決方案。它可以輕鬆修改以適應任意數量的排序標準,使其適用於各種資料操作場景。以上是如何在 JavaScript 中對多字段數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!