如何将.reduce函数输出分配给变量?

时间:2017-10-20 03:04:34

标签: javascript arrays object reduce

给定一个对象和一个键,getElementsThatEqual10AtProperty返回一个数组,该数组包含位于给定键的数组中等于十的所有元素。

我想将我的.reduce方法输出分配给变量,然后在我的if语句中使用该变量。我的代码评估为NaN

function getElementsThatEqual10AtProperty(obj, key) {
  var arrayTotal = 0;
  obj[key].reduce(function(a,b){
    arrayTotal = a + b;
   });
  if(arrayTotal === 10) {
    return obj[key];
  }
};

1 个答案:

答案 0 :(得分:0)

您未正确接近reduce。您几乎像Array#forEach一样使用它。请记住,回调是函数。他们希望return为实际值。

当您阅读文档时,您会看到reduce还需要accumulator,这是回调后的参数。

const sum = obj[key].reduce(function(a,b){
  return a + b
}, 0)

或者如果你想要更新更漂亮的版本:

const sum = obj[key].reduce((a,b) => a + b, 0)

当你有一个班轮时,return是隐含的,这意味着它是暗示的,而不是明确的。

累加器是你的值在它总计值时开始的。

Array.reduce(callback, accumulator)