我有一个动态创建的对象数组(在React中,尽管我认为这并不重要),我试图对具有相同名称的值使用加法。
比如说,我想在同名的值上使用加法。
[{ n1:"1", n2:"2", n3:"3"},
{ n1:"4", n2:"6", n3:"4"},
{ n1:"3", n2:"1", n3:"2"}]
其结果将是:
[{ n1:"8", n2:"9", n3:"9"}]
Spread Syntax和.assign方法似乎可以达到这个目的 但这两个例子都是预定义的数组 而不是动态创建的数组
如果能更容易地解析数据,使每个名字都能占据一个新的数组,那也不错。即 [n1:"8"],[n2:"9"],[n3:"9"]
你可以通过创建一个带有键值对的新对象并添加值来减少对象。
var data = [{ n1: "1", n2: "2", n3: "3"}, { n1: "4", n2: "6", n3: "4"}, { n1: "3", n2: "1", n3: "2"}],
sums = data.reduce((target, source) => {
Object.entries(source).forEach(([k, v]) => target[k] = (target[k] || 0) + +v);
return target;
}, {});
console.log(sums);