对于For循环Javascript中的循环

时间:2011-08-15 23:05:30

标签: javascript for-loop while-loop loops

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>';
           }
     }
}

出于某种原因,这句话正在跳过一些数据。我错过了某处或某事的继续声明吗?

2 个答案:

答案 0 :(得分:14)

在内循环上使用其他变量,例如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 + 

答案 1 :(得分:3)

你在外部的内环中使用“i”。你需要在内循环中使用一个不同的变量:我使用下面的“inner”作为例子。

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
      }
    }
  }