For Loop Javascript 中的 For 循环
Posted
技术标签:
【中文标题】For Loop Javascript 中的 For 循环【英文标题】:For loop inside For Loop Javascript 【发布时间】:2011-10-27 15:51:20 【问题描述】:由于某种原因,此语句跳过了一些数据。我错过了 在某处继续声明还是什么? 这是代码
for (var i = 0, len = data.ORDER_STATUS[0].ORDERS.length; i < len; i++)
if (data.ORDER_STATUS[0].ORDERS[i].SEC_TYPE == "MLEG")
for (var i = 0; i < data.ORDER_STATUS[0].ORDERS[i].LEGS.length; i++)
LEGS += '<tr class="MLEGS"><td class="orderFirst">' +
data.ORDER_STATUS[0].ORDERS[i].LEGS[i].SYMBOL +
'</td><td>' + data.ORDER_STATUS[0].ORDERS[i].LEGS[i].ACTION +
'</td><td>' + data.ORDER_STATUS[0].ORDERS[i].LEGS[i].QTY +
'</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>';
【问题讨论】:
为什么它的格式是这样的?它看起来像是从模板文件或其他东西生成的。 你应该两次都使用 i 变量吗? 【参考方案1】:在内循环中使用不同的变量,例如 j
而不是 i
。
for (var i = 0, len=data.ORDER_STATUS[0].ORDERS.length; i < len; i++)
//...
for (var j = 0; j < data.ORDER_STATUS[0].ORDERS[i].LEGS.length; j++)
//...
data.ORDER_STATUS[0].ORDERS[i].LEGS[j].SYMBOL +
【讨论】:
这绝对有效,但现在内部循环仅在有 4 个时返回该对象中的第一个数组键。嗯 @Bootleg:我需要看看你的data
才能知道原因。你能把它贴在问题里吗?
@Bootleg:控制台有错误吗?很难从图像中看出发生了什么。你能在你的问题中发布你更新的代码吗?不要删除原始代码。只需将新代码放在底部即可。
@Bootleg:啊那些棘手的 CSS 问题!不是问题。很高兴你明白了。
@Greg:感谢您指出这一点。我忘了更新那个变量。但是让我告诉你一件事。每次有人犯了一个小错误时,你都不需要投反对票。我一直帮助纠正人们的答案,而不会投反对票。前几天我corrected yours 没有对您(或其他答案不正确的人)投反对票。事实上,我很少给任何人投反对票。如果您查看我的个人资料,您会看到在我的 3,434 票中,有 96 票投了反对票。我宁愿帮助别人......【参考方案2】:
您在外部和内部循环中使用“i”。您需要在内部循环中使用不同的变量:我在下面使用了“内部”作为示例。
for (var i = 0, len=data.ORDER_STATUS[0].ORDERS.length; i < len; i++)
if (data.ORDER_STATUS[0].ORDERS[i].SEC_TYPE=="MLEG")
for (var inner = 0; inner < data.ORDER_STATUS[0].ORDERS[i].LEGS.length; inner ++)
// do something
【讨论】:
以上是关于For Loop Javascript 中的 For 循环的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript之for...in和for...fo区别
javascript 使用knex in for loop err
JavaScript - For loop vs forEach
[Javascript] Iterate Over Items with JavaScript's for-of Loop
[Javascript] Use JavaScript's for-in Loop on Objects with Prototypes