原数据
const data = [
{ value: 1, name: 'Search Engine' },
{ value: 1, name: 'Direct' },
{ value: 5, name: 'Email' },
{ value: 1, name: 'Union Ads' },
{ value: 6, name: 'Video Ads' },
{ value: 1, name: 'Search Engine' },
{ value: 7, name: 'Direct' },
{ value: 1, name: 'Email' },
{ value: 1, name: 'Union Ads' },
{ value: 8, name: 'Video Ads' },
];
期望结果:
0: {name: 'Search Engine', Search Engine: 2}
1: {name: 'Direct', Direct: 14}
2: {name: 'Email', Email: 2}
3: {name: 'Union Ads', Union Ads: 2}
4: {name: 'Video Ads', Video Ads: 16}
我的处理方式
let f = data.reduce((result, el) => {
let group = result.find(item => item.name == el.name);
if (!group) {
group = {
name: el.name,
}
result.push(group)
}
let total = el.value += el.value;
group[el.name] = total;
return result
}, []);
console.log(f)
想请问各位大佬,上面的数据处理还有什么更好的解法吗
如果是要对相同
name
的value
求和,可以这样写