奇数的总和应该为19,但是显示为undefined?

时间:2019-04-24 17:27:08

标签: javascript arrays for-loop

为什么答案在这里不确定,所以我无法理解我正在寻找 此处的奇数之和应为19,但显示

enter code here
 function oddSum(arr){
 var sum =0;
 for(var i=0;i<arr.length;i++){
  if(arr[i]%2>0)
   sum +=arr[i];`enter code here`
   return sum;
   }
   }

   document.write(oddSum([5,4,6,13,1]));

2 个答案:

答案 0 :(得分:0)

如下更改代码。您的错误是要在for循环内返回总和。这样一来,您将永远无法获得正确的金额。另外,即使if子句中只有一个语句,也请尝试使用方括号。然后,您可以轻松调试它。

function oddSum(arr){
    var sum =0;
    for(var i=0;i<arr.length;i++){
        if(arr[i]%2>0){
            sum +=arr[i];
        }
    }
    return sum;
}
document.write(oddSum([5,4,6,13,1]));

答案 1 :(得分:0)

只需技巧检查数组函数减少(https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/reduce)。

您将可以执行以下操作:

console.log([5,4,6,13,1].reduce((a,b) => b % 2 !== 0 ? a + b : a, 0))