Javascript for循环(如何让它永远重复)

时间:2015-12-06 00:29:42

标签: javascript for-loop

我有一个正在运行的for循环,但完成后我希望它再次开始并重复此过程!

for (var i = 0; i != 3; i = i + 1) {
    (function(index) {
        setTimeout(function() {
            document.getElementById(location[index]).style.background = color[index];            
        }, 1000 * index);
      })(i);
}

3 个答案:

答案 0 :(得分:0)

你可以使用秒for循环。在第二个循环中写下你想要重复第一次循环的次数。你也可以使用while循环。

答案 1 :(得分:0)

将初始for循环嵌入另一个for循环中,使循环重复一定的时间。

例如(其中number是您希望循环重复的number次):

for (var i = 0; i < number; i++) {
  for (var i = 0; i != 3; i = i + 1) {
    (function(index) {
      setTimeout(function() {
        document.getElementById(location[index]).style.background = color[index];            
      }, 1000 * index);
    })(i); 
  }      
}

答案 2 :(得分:0)

您不想使用任何循环结构,例如forwhile。而只是创建一个使用索引调用的函数来启动它,然后在回调中,它递增索引并递归调用相同的函数。当索引到达3时,在递归调用之前将其设置回0

function cycle(index) {
    setTimeout(function() {
        document.getElementById(location[index]).style.background = color[index];

        index++; // Increment the index

        if (index >= 3) {
            index = 0; // Set it back to `0` when it reaches `3`
        }

        cycle(index); // recursively call `cycle()`

        //cycle(++index % 3);
    }, 1000);
}

cycle(0);

我使用%运算符快速确保在递归调用时将其设置回0