给定一个对象和一个键,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];
}
};
答案 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)