javascript - JavaScript 中延迟 'for loop'

标签 javascript loops while-loop delay

我有一个延迟循环,它会延迟 1 秒显示数字 0-3,但我希望它能够重新开始此过程。

我尝试将整个代码放入 x<99 的 while 循环中 (永远不会发生的事情因此使循环永远重复) 这似乎不起作用

这是代码:

sequence=["0","1","2","3"];

while (x<99) {
x=-1;
(function myLoop (i) {          
   setTimeout(function () {   
   x++;
   document.write(sequence[x] + "<br/>");
   if (--i) myLoop(i);  
  }, 1000)
  })(4); 
}

Here is a code-pen link

有人可以帮忙吗?

谢谢

最佳答案

在这种情况下循环不起作用。有多种方法可以做到这一点。一种方法是“递归”调用 setTimeout,在每次调用时增加索引。

var sequence=["0","1","2","3"];

(function() { // some boilerplate code to keep `i` private
    var i = 0; // running index
    (function run() {
        console.log(sequence[i]);
        i = (i+1) % sequence.length; // increase `i` and wrap around
        setTimeout(run, 1000); // next iteration
    }());
}());

关于javascript - JavaScript 中延迟 'for loop',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16389734/

相关文章:

php - 如何让 php 在循环外回显值?

javascript - 在选择框中快速选择整个 optgroup 的简便方法

javascript - PHP - 多维数组到 Json

javascript - 在 JavaScript 中隐藏/显示元素

Python for 循环与或?

linux - 使用 Bash 循环遍历 txt 文件中的唯一行

java - 如何在for循环中添加连字符

php - 为 while 循环结果创建一个变量

c++ - 使用goto语句时,代码不会在循环内的期望位置输出

javascript - 每个选项卡的 AngularJS 唯一选项卡数据