如何将我的 .reduce 函数输出分配给一个变量?

How do I assign my .reduce function output to a variable?

给定一个对象和一个键,getElementsThatEqual10AtProperty returns 一个数组,其中包含位于给定键处且等于 10 的数组的所有元素。

我想将我的 .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];
  }
};

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)