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