我正在尝试使用以下代码迭代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以避免潜在冲突,但问题仍然存在。
答案 0 :(得分:1)
如果条件始终为真,则循环只能是无限的。在你的情况下,它看起来应该达到假,但可证明formData
正在获取循环的每次迭代的新元素或i
被修改并返回到先前的值。
我建议创建仅用于比较目的的变量:
var max = fromdata.length;
for (var count = 0; count < max; count++) {
var i = count;
// your stuff using formdata and i
现在max
和count
不会被循环中的代码修改,循环就会结束。