簡體   English   中英

帶有if語句的for循環不會多次運行javascript

[英]For loop with if statement will not run more than once javascript

我試圖從數組中打印奇數和偶數,但由於某種原因,我的循環在僅打印一個數字后退出(“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>

您正在為i分配一個字符串

i += " is even"

i += "is odd"

這打破了循環。

您可以將此代碼用於偶數部分

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

然后你需要用''初始化text

text = '';

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

畢竟,輸出應該向下移動一步,因為它不應該在每個循環中進行輸出,這會覆蓋最后的內容。

 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; }
 <p>Click the button to print odd and even numbers</p> <button onclick="loopNum()">Click me</button> <p id="loopNumbers"></p>

你的+=放錯了地方。 您不是添加到文本變量,而是將字符串值分配給 i。 改變這個,它會起作用。

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

首先,您要重新分配循環變量 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;
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM