JavaScript数组迭代方法

Wol*_*mec 1 javascript

我有一个for循环遍历所有项目:

for (i=0; i < this.widgets.length; i++) {
  this.changeWidgetArray(this.widgets[i]); 
}
Run Code Online (Sandbox Code Playgroud)

在for循环中,对于每个元素,我调用"changeWidgetArray".在这种方法中,改变了上面的"小部件" - 阵列."changeWidgetArray"中的数组更改是否会影响循环迭代?

我的问题是:

目前,当迭代从第一个项开始时,整个数组的所有元素都被"收集",或者JavaScript在下一个迭代步骤开始之前逐个动态地获取.

或者这取决于JavaScript的实现?这是在ECMA-Script规范中定义的吗?

非常感谢提前

Ali*_*guy 5

是的:

for (i=0; i < this.widgets.length; i++) {
  this.changeWidgetArray(); 
}
Run Code Online (Sandbox Code Playgroud)

:

for (var i=0, max=this.widgets.length; i < max; i++) {
  this.changeWidgetArray(); 
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么选择downvote?这是一个简单的是/否问题,这个答案是正确的.无需进入陷阱或最佳实践重构. (2认同)
  • ^不用担心我知道,它发表在你的评论后6分钟.匿名downvotes是这个网站最愚蠢的事情.他们应该至少需要一个理由. (2认同)
  • 我完全同意.由于没有明显的原因而被投票,这可能会非常令人沮丧. (2认同)