es6根据数组对象里的指定字段累加并去重
例如:
const arr = [
{id:1,typeId:1,num:2},
{id:2,typeId:1,num:5},
{id:3,typeId:2,num:2},
{id:4,typeId:2,num:1},
{id:5,typeId:3,num:2},
{id:6,typeId:3,num:2},
{id:7,typeId:3,num:2},
];
如果只是去重使用map()和filter()方法就行
const res = new Map();
arr.filter((item)=>{
!res.has(item.typeId) && res.set(item.typeId,1)
});
现在我想要的是能够去重,但相同的typeId的num要累加
最后的结果希望是这样的:
const arr = [
{id:1,typeId:1,num:7},
{id:3,typeId:2,num:3},
{id:5,typeId:3,num:6},
];
不知道有什么办法能解决
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
const arr = [
];
const map = new Map();
arr.forEach(item => {
});
const result = [...map.values()];
console.log(result);
你这个不能称为去重,只能是相同typeId的累加。
理论上新的数组中不该有id属性的。
介绍一个库alasql: