我有一个数组数组,其中的对象如下所示:
var data = [
[{'name':'John', 'value':2},
{'name':'Randy', 'value':4}
],
[{'name':'Sarah', 'value':10},
{'name':'Julie', 'value':10}
]
];
我想遍历每个数组并将value
s相加并将总数存储在一个数组中。我想出的东西是这样的:
function add(accumulator, a) {
return accumulator + a;
}
var totals = [];
var yExtent = data.forEach(function(item) {
item.forEach(function(jtem) {
var subTotals = [];
subTotals.push(jtem.value);
return subTotals;
})
var localTotal = subTotals.reduce(add,0);
totals.push(localTotal);
return totals;
});
console.log(totals)
但是,这会导致错误:“未定义 subTotals”
发生这种情况是因为subTotals
与函数的其他部分不在同一范围内吗?如果是这样,我应该如何进行?我不能放入var localTotal = subTotals.reduce(add,0);
范围,因为forEach()
它会过于频繁地计算它并给我错误的值。我应该如何修改此代码以将我的内部forEach()
计算返回到外部?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句