-2

我有 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 的值设置为等于外循环数组的长度,但我想知道是否有更好的方法。

谢谢。

4

1 回答 1

3

您可以通过添加标签来做到这一点。

   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];
           ...
       }
    }
于 2013-08-25T21:03:00.803 回答