Javascript:迭代数组导致无限循环?

时间:2013-07-18 08:52:52

标签: javascript arrays

我正在尝试使用以下代码迭代Javascript中的一些数据:

for (var i = 0; i < fromdata.length; i++) {
    var mainid = fromdata[i].id;
    var sub = afcHelper_Submissions[mainid];
    /* do more stuff */

fromdata是一个对象数组,如下所示:

[{ type="ffu", to=" Jon Corzine ", id=1, more...}, { type="ffu", to=" Jon Corzine ", id=2, more...}]

正如您所看到的,我只想获取每个对象的id并将其存储到mainid,然后再使用它;但是,我遇到了麻烦:循环!循环!循环!循环一次又一次地运行。它永远不会停止,只是设法冻结Firebug。

更新:这是“做更多的东西”,其所有的pastebin荣耀:http://pastebin.com/Mfr90uq7。请注意,我将变量名称从sub更改为sub_m以避免潜在冲突,但问题仍然存在。

1 个答案:

答案 0 :(得分:1)

如果条件始终为真,则循环只能是无限的。在你的情况下,它看起来应该达到假,但可证明formData正在获取循环的每次迭代的新元素或i被修改并返回到先前的值。

我建议创建仅用于比较目的的变量:

var max = fromdata.length;
for (var count = 0; count < max; count++) {
    var i = count;
    // your stuff using formdata and i

现在maxcount不会被循环中的代码修改,循环就会结束。