在循环通过内循环时从外循环中断开

时间:2013-08-25 21:00:37

标签: javascript

我有2个嵌套循环,如下所示:

for (var i = 0; i < SomeArray.length; i++) {

   for (var prop in SomeArray[i]) {

      if (SomeCondition) {

          break; // here I need to break from the outer for-loop
      }
   }
}

break语句从对象的属性退出for-in循环,但我想退出外部for循环。

我该怎么做?我想把i的值设置为等于外循环数组的长度,但我想知道是否有更好的方法。

感谢。

1 个答案:

答案 0 :(得分:3)

您可以通过添加label来实现。

   outer: 
   for (var i = 0; i < SomeArray.length; i++) {

       for (var prop in SomeArray[i]) {

          if (SomeCondition) {

              break outer; // here I need to break from the outer for-loop
          }
       }
    }

这是你问题最直接的答案。但标签是不受欢迎的,因为它们很少使用,不为人所熟知,并且使代码很难遵循。最好重写代码,例如

    for (var i = 0; i < SomeArray.length && !SomeCondition; i++) {

       for (var j = 0; j < SomeArray[i].length && !SomeCondition; j++) {
           var prop = SomeArray[i][j];
           ...
       }
    }