簡體   English   中英

根據字符串參數對對象數組進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM