所有奇数的总和应该是19,但它显示未定义?

问题描述 投票:0回答:2

为什么答案在这里不明确我不明白我试图在这里找到奇数的总和,答案应该是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]));
javascript arrays for-loop
2个回答
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]));

0
投票

只是提示检查数组函数reduce(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))
© www.soinside.com 2019 - 2024. All rights reserved.