Решение, которое я ищу: моя функция должна возвращать сумму всех четных чисел в моем массиве. Ожидаемый ответ - 30.
Проблема, с которой я столкнулся: ответ на этот вопрос - 25.
let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sumEvens = (numStr) => {
let sum = 0;
for (let i = 0; i < numStr.length; i++) {
if (i % 2 === 0){
sum = sum + numStr[i];
}
}
return sum;
}
console.log(sumEvens(numStr));
Я изменил функцию push на массив sum и возвратил массив sum, чтобы найти причину, по которой он возвращает 25, потому что он создает массив нечетных чисел вместо четных.
let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sumEvens = (numStr) => {
let sum = [ ];
for (let i = 0; i < numStr.length; i++) {
if (i % 2 === 0){
sum.push(numStr[i]);
}
}
return sum;
}
console.log(sumEvens(numStr));
Единственный способ, которым я могу получить правильный вывод 30, - это сделать оператор if if if (i % 2 !== 0)
, но я знаю, что это означает, что добавлять, только если число в массиве НЕ является четным.
Я чувствую себя так близко, но упускаю одну незначительную вещь. Другие SO сообщения и MDN мне не помогли.