【发布时间】:2018-11-13 19:03:42
【问题描述】:
我在 Grok 一个简单的 JavaScript for 循环时遇到了麻烦。
这是一个例子:
var arr = ["Banana", "Orange", "Apple", "Mango"];
for (i = 1; i <= 5; ++i) {
setDelay(i);
}
function setDelay(i) {
setTimeout(function(){
for(const value of arr) {
document.write(value);
document.write("<br />");
}
}, i * 1000);
}
我要做的是在打印第一个值后暂停,而是运行整个 For 循环然后暂停。我想我正在尝试用 for 循环做一些不起作用的事情,但我想知道为什么。
任何帮助将不胜感激。
请戳这里:https://plnkr.co/edit/tnmFrIRTDJI8T294Qh4z?p=preview
Javascript, setTimeout loops? 的例子并没有帮助我弄清楚。正如 George Pantazes 指出的那样,我的概念仍然是错误的。
【问题讨论】:
-
通过运行您的代码,您可以看到您正在打印
setTimeout中的整个数组。如果您像arr[i]一样访问您的数组并且只打印一项而不是全部,您的代码将按您的意愿工作,而不是在setTimeoutfor循环中循环整个arr。
标签: javascript