【发布时间】:2016-02-04 17:25:51
【问题描述】:
我有以下代码:
for (i = 0; i < 3; i++){ //big loop
console.log("Start of round" + i)
for (s = 0; s < 5000; s++){ //small loop aka delay loop
console.log("End of round" + i);
}
s = 0; //reset
}
首先,我知道还有其他方法可以解决这个问题。问题是,我正在尝试进一步了解循环,所以我选择了这个例子,请告诉我哪里错了。
所以我有一个应该自己运行 3 次的循环。每次它自己运行时,都会有一个循环来延迟进程。 问题是,延迟在第 2 次和第 3 次停止发生。
这是我认为应该发生的事情
1) 首先 i = 0,继续循环
2)延迟进一步进行内部循环
3)当延迟循环结束时,重新设置小循环的s var,这样当i = 1时它会再次运行;更大的循环将重新开始
4) 当 i = 1 时,大循环再次开始;所以继续,再次运行延迟循环,因为我们上次重置了 var s。
5) 当 i = 2 时重复
我在这里缺少什么?我想更深入地了解 javascript 循环。谢谢。
【问题讨论】:
-
循环不会造成延迟...如果您想要明显的时间延迟,那么您使用了错误的技术。
-
嵌套循环不会产生延迟,只会降低性能
-
你不需要重置
s = 0,它会在每次主迭代中发生 -
延迟可以使用setTimeout,见相关讨论here
-
另外
console.log("End of round" + i);应该是你外循环的最后一行
标签: javascript loops variables for-loop