javascript - 尝试在 JavaScript 中使用 time.js 和 for 循环仅输出数组中的最终值

标签 javascript for-loop foreach

我正在使用一个名为timer.js的库,因为我想循环遍历一个数组,但希望在迭代之间有一个延迟

这是图书馆 github 的链接:https://github.com/husa/timer.js

我所做的是从timer.js的最小版本创建一个文件,并在我的主js文件之前在html正文中链接到它,如下所示:

<script src="./timer.js" charset="utf-8"></script>
<script src="./script.js" charset="utf-8"></script>

然后在主 js 文件中我创建了一个数字数组,我只想循环遍历它们,同时在 console.logs 之间有一个间隔:

var timer = new Timer();

var nums = [1,2,3,4]

for (var i = 0; i < nums.length; i++){
  timer.start(5).on('end', function(){
    console.log(i);
  })
}

当我打开控制台日志时,我只记录了“4”。为什么 for 循环对其他索引不起作用。另外,有什么方法可以使用 forEach 函数重新创建它吗?

谢谢

最佳答案

I want to loop through an array, but want to have a delay between the iterations

根据迭代设置持续时间:

duration*iteration

setTimeout可以实现延迟,持续时间以毫秒为单位,假设2秒(2000ms),让我们在迭代中加1,这样第一次迭代就有延迟:

const nums = [1,2,3,4]

nums.forEach((n, i)=>{
  setTimeout(()=>(
    console.log(i)
  ), 2000*(i+1))
});

关于javascript - 尝试在 JavaScript 中使用 time.js 和 for 循环仅输出数组中的最终值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616983/

相关文章:

javascript - 在同一页面上添加两个 div,每个包含一个链接,隐藏它的父 div 并显示另一个

for-loop - 批处理命令查找并运行文件

javascript - 更新循环内的变量

javascript - 在 JavaScript 中自动预设响应。

javascript - 将 HTML 表单输入传递给 JavaScript 到 BaaS

javascript - 在保存和下载为 Sql Server 报告的 pdf 时重命名文件?

parameters - 在 verilog 中使用带有 for 循环的参数进行位选择

python - 我想检查输入是否在字符串中,然后打印输出

c++ - ForEach 中的最后一个元素

php - 通过单击 foreach 循环显示/隐藏 xml 内容