【问题标题】:for-loop gets stuck on the same numberfor-loop 卡在同一个数字上
【发布时间】:2013-02-08 13:58:20
【问题描述】:

下面的循环运行一次 i=0,然后无限期地运行 i=1 导致浏览器崩溃,即 i 不递增:

cascadeComponent: function(item, fn, scope) {
    if (fn.call(scope || this, item) !== false) {
        if (item.items) {
            for (i = 0; i < item.items.items.length; i++) {
                this.cascadeComponent(item.items.items[i], fn, scope);
            }
        }
    }
}

我可以通过使用框架迭代循环来避免这个问题。或者,我使用相同的循环处理数组在 item.items 与 item.items.items 中的细微差别。

任何想法为什么会发生这种情况?在 Chrome 和 Firefox 中也是如此。

【问题讨论】:

  • 您确定是item.items.items.lengthitem.items.length..请告诉我们您在项目中拥有什么......
  • 是的,这就是 Ext.js 使用的结构

标签: javascript


【解决方案1】:

您正在使用全局 i 变量。在函数开头添加这一行:

var i;

否则,对于所有cascadeComponent 的调用,每个递归调用都会将i 重置为0。

【讨论】:

  • 非常感谢!完全错过了。有时过多地盯着一个问题没有帮助,需要一个新的观点:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
相关资源
最近更新 更多