如何将我的 .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)
给定一个对象和一个键,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)