编写程序以在数组中添加所有奇数

met*_*lah 1 javascript

 // Write a program to sum all the odd elements of an array

    a = Number(prompt("a:"));
    b = Number(prompt("b:"));
    c = Number(prompt("c:"));

    sum=Number(0);

    var test = [a,b,c];

    for (i=0; i<test.length;i++) {
        // All even numbers can be divided by 2
        if ((test[i]%2)>0) {
            alert(test[i] + ":odd");
        } else {
            alert(test[i] + ":even");
        }
        test[i]=0;
   }

   sum=0+test[i];
   alert(sum);
Run Code Online (Sandbox Code Playgroud)

我的程序运行良好,直到它意味着将它返回NaN消息的所有数字相加!关于如何解决这个问题的任何想法?

nnn*_*nnn 6

我看到你的代码有三个问题.(不计算大括号的怪异格式.)

  1. 编辑:看起来问题自我开始回答以来已经更新了几次.在"if odd"测试中你将数字设置为零 也许你想要将偶数数字归零,这样你以后可以将所有数字加起来然后得到奇数,但test[i]=0不是if/else的一部分结构体.它看起来应该是因为缩进,但JavaScript忽略了额外的空白区域.

  2. 您没有将数字添加到sum循环中.

  3. 你因为这条线而得到了NaN:

    sum=0+test[i];
    
    Run Code Online (Sandbox Code Playgroud)

该语句在循环结束之外,因此在该点i等于数组的长度并且test[i]undefined.

尝试以下伪代码:

sum = 0
for (loop through the array) {
   if current number is odd
      sum = sum + current number
}
Run Code Online (Sandbox Code Playgroud)