[英]Sort array of objects based on string parameter
我有以下對象數組:
[
{
"id" : 1,
"pricePerDay" : 50,
},
{
"id" : 2,
"pricePerDay" : 70
}
]
基於 ai 的用戶輸入,希望在pricePerday
上過濾 ASC 或 DESC。 顯然這適用於:
this.products.sort((a, b) => parseFloat(b.pricePerDay) - parseFloat(a.pricePerDay));
但是我有變量filterType
現在包含字符串'pricePerDay'
。 我如何使用此變量在對象數組中搜索具有相同鍵的屬性並根據該鍵對該數組進行排序?
this.products.sort((a, b) => parseFloat(b[filterType]) - parseFloat(a[filterType]));
這回答了你的問題了嗎?
您可以將 filterType 更改為您想要的字段,如果您想要 desc 順序,則可以將 acs 更改為 false
const arr = [ { "id": 1, "pricePerDay": 50, }, { "id": 2, "pricePerDay": 70 } ] let filterType = 'pricePerDay' let asc = false const res = arr.sort((a, b) => { if (asc) { return parseFloat(a[filterType]) - parseFloat(b[filterType]) } else { return parseFloat(b[filterType]) - parseFloat(a[filterType]) } }); console.log(res)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.