[{name:"A", value:10}, {name:"A", value:20}, {name:"B", value:15}, {name:"B", value:25}, {name:"C", value:30}]
I have an object like above , I want to sum the distinct name. output [A:30, B:40, C:30]. ES6 code preferable.
[{name:"A", value:10}, {name:"A", value:20}, {name:"B", value:15}, {name:"B", value:25}, {name:"C", value:30}]
I have an object like above , I want to sum the distinct name. output [A:30, B:40, C:30]. ES6 code preferable.
You can use Array#reduce
with an object to store the values for each name
.
let arr = [{name:"A", value:10}, {name:"A", value:20}, {name:"B", value:15}, {name:"B", value:25}, {name:"C", value:30}];
let res = Object.values(arr.reduce((acc,curr)=>{
(acc[curr.name] = acc[curr.name] || {name: curr.name, value: 0}).value += curr.value;
return acc;
}, {}));
console.log(res);