簡體   English   中英

JavaScript for循環問題

[英]JavaScript for-loop question

for循環可以重復3次嗎? 例如,

for (i=0;i<=5;i++)

創造了這個:1,2,3,4,5。 我想創建一個循環來執行此操作:1,1,1,2,2,2,3,3,3,4,4,4,5,5,5

那可能嗎?

 for (i=1;i<=5;i++)
     for(j = 1;j<=3;j++)
         print i;

是的,只需將你的循環包裝在另一個循環中:

for (i = 1; i <= 5; i++) {
   for (lc = 0; lc < 3; lc++) {
      print(i);
  }
}

(您的原始代碼表示您想要1-5,但是從0開始。我的示例從1開始)

你可以在for循環中有兩個變量,只有當j是3的倍數時才增加i:

for(i = 1,j = 0; i <= 5; i = ++ j%3!= 0?i:i + 1)

當然。 你可以嵌套for循環:

for (var i = 1; i < 6; ++i) {
    for(var j = 0; j < 3; ++j) {
        print(i);
    }
}

請注意,問題中的代碼將打印0, 1, 2, 3, 4, 5 ,而不是1, 2, 3, 4, 5 我已修復此問題以符合我在答案中的說明。

如果你真的只想要一個循環,你可以使用第二個變量,如:

for(var i = 0, j = 0; i <= 5; i = Math.floor(++j / 3)) {
     // whatever
}

雖然,根據你想要的原因,可能有更好的方法。

只需添加嵌套在第一個循環中的第二個循環:

for (i = 0; i <= 5; i++)
    for (j = 0; j < 3; j++)
        // do something with i

您可以使用嵌套for循環

for (var i=0;i<5; i++) {
  for (var j=0; j<3; j++) {
   // output i here
  }
}

您可以在循環中使用兩個變量:

for (var i=1, j=0; i<6; j++, i+=j==3?1:0, j%=3) alert(i);

但是,通過查看代碼它的作用並不是那么明顯。 簡單地將循環嵌套在另一個循環中可能會更好:

for (var i=1; i<6; i++) for (var j=0; j<3; j++) alert(i);

我看到很多嵌套循環的答案(顯然是最好和最容易理解的解決方案),然后是一個循環和兩個變量的答案,盡管令人驚訝的是沒有人提出單循環和單個變量。 所以只是為了練習:

for(var i=0; i<5*3; ++i)
   print( Math.floor(i/3)+1 );

暫無
暫無

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

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