过滤重复对象的数组并得到它们的总和,通常涉及到以下几个基础概念:
根据去重的对象类型,可以分为以下几种:
假设我们有一个包含重复对象的数组,每个对象包含一个id
和一个value
字段,我们需要去重并计算这些对象的value
总和。
const data = [
{ id: 1, value: 10 },
{ id: 2, value: 20 },
{ id: 1, value: 10 },
{ id: 3, value: 30 },
{ id: 2, value: 20 }
];
const uniqueData = Array.from(new Map(data.map(item => [item.id, item])).values());
const totalValue = uniqueData.reduce((sum, item) => sum + item.value, 0);
console.log(uniqueData); // [{ id: 1, value: 10 }, { id: 2, value: 20 }, { id: 3, value: 30 }]
console.log(totalValue); // 60
Map
去重?原因:Map
对象的键是唯一的,因此可以利用这一点来去重。
解决方法:
const uniqueData = Array.from(new Map(data.map(item => [item.id, item])).values());
原因:可以使用数组的reduce
方法来累加对象的value
字段。
解决方法:
const totalValue = uniqueData.reduce((sum, item) => sum + item.value, 0);
通过以上方法,可以有效地过滤重复对象的数组并得到它们的总和。
领取专属 10元无门槛券
手把手带您无忧上云