繁体   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