今天看到一种数据处理需求是把购物单中的同名商品的数量合并,如下面的数据
let data2 = [{
id: "5",
name: "桃子",
num: 1,
},{
id: "1",
name: "苹果",
num: 1,
}, {
id: "2",
name: "苹果",
num: 1,
}, {
id: "3",
name: "梨",
num: 1,
}, {
id: "4",
name: "苹果",
num: 1,
}, {
id: "6",
name: "梨",
num: 7,
},{
id: "7",
name: "桃子",
num: 8,
}]
想得到这样的数据:
[{
id: '5',
name: '桃子',
num: 9
},{
id: '1',
name: '苹果',
num: 3
},{
id: '3',
name: '梨',
num: 8
}]
我是这样实现的:
- 思路大致是先创建一个空数组,然后循环原本的数组,去判断循环的item在新的数组有没有
- 若是没有则执行添加及合并操作,若是有则会被跳过
- 添加就是用push()填入新数组,合并就是再次循环数组去判断有无同名元素且索引不同,就把数量值合并
代码如下: