for if语句不会运行多次javascript

时间:2017-01-24 15:51:13

标签: javascript if-statement for-loop

我正在尝试从数组中打印奇数和偶数但由于某种原因我的循环只在打印一个数字后退出(" 0甚至是"正在打印)。我不明白为什么它也不会迭代1,2,3,4,5和6?

<!DOCTYPE html>
<html>
<body>

<p> Click the button to print odd and even numbers </p>

<button onclick="loopNum()">Click me</button>

<p id="loopNumbers"></p>

<script> 
function loopNum(){

var numbers = [1, 2, 3, 4, 5, 6]
var text;

for(var i = 0;i < numbers.length;i++){
        if (i % 2 ==0){
            text = (i += " is even");
            }
        else if (i % 2 !=0){
            text = (i += "is odd");
        }   
        document.getElementById("loopNumbers").innerHTML=text;
    }

}

</script>

</body>
</html>

3 个答案:

答案 0 :(得分:2)

您正在为i

指定字符串
i += " is even"

i += "is odd"

这打破了循环。

您可以将此代码用于偶数部分

text += i + " is even" + '<br>';

然后您需要使用text

初始化''
text = '';

你可以省略第二个if子句。

毕竟,输出应该向下移动一步,因为它不应该在每个循环中输出,这将覆盖最后的内容。

&#13;
&#13;
function loopNum() {
    var numbers = [1, 2, 3, 4, 5, 6],
        text = '';

    for (var i = 0; i < numbers.length; i++) {
        if (i % 2 == 0) {
            text += i + " is even<br>";
        } else {
            text += i + " is odd<br>";
        }
    }
    document.getElementById("loopNumbers").innerHTML = text;
}
&#13;
<p>Click the button to print odd and even numbers</p>
<button onclick="loopNum()">Click me</button>
<p id="loopNumbers"></p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您的+=放错了地方。您没有添加到文本变量,而是为i分配字符串值。改为这个,它会起作用。

if (i % 2 ==0){
   text += (i + " is even");
}
else if (i % 2 !=0){
   text += (i + " is odd");
}   

答案 2 :(得分:0)

首先,你要重新分配循环变量i,这是赋值后的一个字符串:

i += " some string "

你不能用字符串变量循环。

您将遇到的第二个问题是重新分配p元素的值,因此最后您只能看到其中一个输出。要获得所有输出,您可以例如附加到p元素:

function loopNum(){
var numbers = [1, 2, 3, 4, 5, 6]
var text;
for(var i = 0;i < numbers.length;i++){
  if (i % 2 ==0){
    text = i + " is even";
  }
  else if (i % 2 !=0){
    text = i + "is odd";
  }   
  document.getElementById("loopNumbers").innerHTML += text;
}

}