在JavaScript 中按屬性值對物件進行排序
處理物件陣列時,按特定屬性值對它們進行排序對於管理和可視化至關重要數據。讓我們探索如何使用 JavaScript 實作此排序功能。
問題:
給定一個表示家庭資料的物件數組,我們如何建立一個函數來對它們進行排序他們的「價格」屬性是升序還是降序排列?
對像數組:
考慮以下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": "5", "city": "New York", "state": "NY", "zip": "00010", "price": "962500" } ];
排序函數:
要對homes數組進行排序,我們可以使用內建的sort() 方法。此方法需要一個比較函數作為其參數。比較函數採用兩個元素作為輸入,如果第一個元素應該在第二個元素之前,則傳回負數;如果第二個元素應該在第一個元素之前,則傳回正數;如果元素被認為相等,則返回零。
升序:
要按價格升序對房屋進行排序,我們定義一個比較函數,該函數從第一個元素的價格中減去第一個元素的價格第二個元素並比較差異。如果差值為負數,則表示第一個元素的價格小於第二個元素的價格,且第一個元素應該在第二個元素之前。
homes.sort(function(a, b) { return parseFloat(a.price) - parseFloat(b.price); });
或在ES6 語法:
homes.sort((a, b) => parseFloat(a.price) - parseFloat(b.price));
降序:
對於降序,我們可以透過減去來反轉函數第一個元素的價格中第二個元素的價格。
homes.sort((a, b) => parseFloat(b.price) - parseFloat(a.price));
結果:
排序後,homes 陣列將根據指定的值進行排序命令。您可以列印修改後的陣列來驗證排序。
以上是如何依特定屬性值(例如價格)對 JavaScript 物件陣列進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!