我有一个正在运行的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);
}
答案 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)
您不想使用任何循环结构,例如for
或while
。而只是创建一个使用索引调用的函数来启动它,然后在回调中,它递增索引并递归调用相同的函数。当索引到达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
。