您可以使用 JavaScript 的 reduce
方法来解决这个问题。reduce
方法会遍历数组中的每个元素,并将它们合并成一个新的对象。
这是如何使用 reduce
方法合并对象的示例代码:
let list = [{name:'选项1',value:1},{name:'选项2',value:2},{name:'其他',value:3},{name:'其他',value:4},{name:'其他',value:5}];
let merged = list.reduce((acc, curr) => {
if (acc[curr.name]) {
acc[curr.name].value += curr.value;
} else {
acc[curr.name] = curr;
}
return acc;
}, {});
list = Object.values(merged);
在这个示例中,我们首先创建一个空对象 acc
作为累加器。然后,我们遍历列表中的每个元素 curr
。如果累加器中已经有一个与当前元素的 name
相同的键,我们就将当前元素的 value
加到累加器中对应元素的 value
上。如果累加器中没有这个键,我们就将当前元素添加到累加器中。最后,我们将累加器转换为一个数组,赋值给 list
。