从外循环中断,同时循环通过内循环

breaking from outer loop while looping through inner loop

本文关键字:循环 中断      更新时间:2023-09-26

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

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

谢谢。

您可以通过添加标签来实现这一点。

   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];
           ...
       }
    }