Я учусь использовать ...
, оператор распространения, чтобы написать функцию, которая принимает все параметры, переданные функции, и возвращает сумму четных.Мой вопрос таков: почему мой acc равен NaN, кроме первого обратного вызова метода redu ()?
Код и выполненная распечатка приведены ниже, а 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