说我有以下数组:

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的初始值,该初始值将在a的初始迭代中分配给第一个参数reduce()

请尝试以下操作:



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);

关于javascript - 如何用reduce总结对象数组的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49934188/

10-10 22:44