数组对象,根据对象多个属性值,或单个判断,重组数组

47 篇文章 0 订阅
本文介绍了一种针对数组对象的重组方法,通过合并具有相同属性值的对象,并演示了如何处理多属性判断场景。首先展示了单属性判断的reduceList函数,随后提出将多个属性拼接成新属性以简化判断。以车辆服务数据为例,展示了如何创建新的KEY属性并重组数组。
摘要由CSDN通过智能技术生成

首先 提供重组方法
// let a = [{id: 1}, {id: 3}, {id: 2}, {id: 3}, {id: 1}]; // [[{id: 1}, {id: 1}], [{id: 2}], [{id: 3}, {id: 3}]]
export function reduceList(val, src) { // 通过某个属性值相同判断—重组数组对象
let b = val.reduce((r, x) => ((r[x[src]] || (r[x[src]] = [])).push(x), r), {});
let c = Object.keys(b).map(x => b[x]);
return c;
}

如果多个属性判断,此方法只有一个入参。换个思路,可以把多以属性值拼接为一个属性来判断
list =[{servmileage:‘2’,servtime :‘5’,servitemcode:‘sx2222’},{servmileage:‘2’,servtime :‘5’,servitemcode:‘sx2332’},{servmileage:‘2’,servtime :‘6’,servitemcode:‘sx2222’},{servmileage:‘2’,servtime :‘5’,servitemcode:‘sx2332’},{servmileage:‘2’,servtime :‘5’,servitemcode:‘sx2222’},]
let newdata = []
for (let k in list) {
newdata.push({
…list[k],
KEY: list[k].servmileage + list[k].servtime + list[k].servitemcode,
}); }// 重组判断条件。 使用项目名,服务次数,服务公里数拼接校验
newArr = reduceList(newdata,‘KEY’); // 重组数组对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值