[英]How to sum up properties of an array of objects with reduce
说我有以下数组:
var BUILDINGS = [
{ production: {"numberProd": 6}},
{ production: {"numberProd": 11}},
{ production: {"numberProd": 14}},
];
我正在尝试使用reduce()
来累加这些产品的总和。 我尝试了以下操作:
BUILDINGS.reduce(function(a,b) {return a.production.numberProd + b.production.numberProd});
但是,当我运行代码时,我得到的值是NaN
。
我想知道如何正确设置reduce()
语句。 谢谢!
您必须传递初始值0
,该初始值将在reduce()
的初始迭代中分配给第一个参数a
。
请尝试以下操作:
var BUILDINGS = [ { production: {"numberProd": 6}}, { production: {"numberProd": 11}}, { production: {"numberProd": 14}}, ]; var prod = BUILDINGS.reduce(function(a,b) { return a + b.production.numberProd; }, 0); console.log('Total:', prod);
您非常接近:
BUILDINGS.reduce(function(a,b) {return a + b.production.numberProd}, 0);
BUILDINGS.reduce((currentValue, nextBuilding) => {
return currentValue + nextBuilding.production.numberProd
}, 0) // 0 is the first value
您可以这样做:
var BUILDINGS = [ { production: {"numberProd": 6}}, { production: {"numberProd": 11}}, { production: {"numberProd": 14}}, ]; console.log(BUILDINGS.reduce((sum, item) => { sum += item.production.numberProd; return sum; }, 0));
如果未传递初始值0
,则将得到NaN
作为结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.