3 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
和
if (i % 2 === 0){
您正在檢查被迭代的索引是否為偶數(shù)。所以,你最終會(huì)相加numStr[0],numStr[2]等該指數(shù)而不是在檢查值:
if (numStr[i] % 2 === 0) {
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 (numStr[i] % 2 === 0) {
sum = sum + numStr[i];
}
}
return sum;
}
console.log(sumEvens(numStr));

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用filter與reduce替代:
let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const sumEvens = arr => arr.filter(e => !(e % 2)).reduce((a, b) => a + b);
console.log(sumEvens(numStr));
當(dāng)前代碼的問題是您正在檢查索引,而不是元素。

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
使用過濾器并減少。
let numStr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let sum = numStr.filter(i => i%2 ===0).reduce((a,v) => a += v);
console.log(sum);
添加回答
舉報(bào)