我正在学习使用扩展操作符...
来编写一个函数,该函数接受传递给函数的所有参数,并返回偶数参数的和。我的问题是,除了reduce()的第一个回调之外,为什么我的acc等于NaN?
代码和执行的打印输出如下,console.log(...)
是我插入的调试代码。谢谢你的帮助。
function sumEvenArgs(...args){
var sum = args.reduce( (acc, next) => {
console.log("\nnext:", next);
if (next % 2 === 0) {
acc += next;
console.log("in if - acc:", acc);
} else {
acc += 0;
console.log("in else - acc:", acc);
}
}, 0);
return sum;
}
var sum = sumEven(1,2,3,4) // 6
console.log("sum:", sum);
输出
next: 1
in else - acc: 0
next: 2
in if - acc: NaN
next: 3
in else - acc: NaN
next: 4
in if - acc: NaN
sum: undefined
https://stackoverflow.com/questions/50807742
复制相似问题