Сложить все переданные аргументы функции
Допустим, встала задача сложить все переданные аргументы функции.
Вот код:
function sum(...rest) {
let res;
for (let num of rest) {
res += num;
}
return res;
}
alert(sum(1, 5, 23, 2, 0, 9, 9));
Вопрос: почему вместо суммы всех чисел выводится NaN.
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
начальное значение res не установлено и по умолчанию оно равно undefined.
При сложении undefined с числом - результат будет NaN, при дальнейшем сложении NaN с числами результат так же остается NaN.
Для решения достаточно инициализировать res, например 0
function sum(...rest) {
let res = 0;
for (let num of rest) {
res += num;
}
return res;
}
console.log(sum(1, 5, 23, 2, 0, 9, 9));