我试了一下:
for(i = 0; i < 5; i++){
for(j = i + 1; j < 5; j++){
break(2);
}
alert(1);
}
结果却得到:
SyntaxError:缺失;在声明中
那么,如何在JavaScript中打破嵌套循环呢?
我试了一下:
for(i = 0; i < 5; i++){
for(j = i + 1; j < 5; j++){
break(2);
}
alert(1);
}
结果却得到:
SyntaxError:缺失;在声明中
那么,如何在JavaScript中打破嵌套循环呢?
当前回答
你可以用'break'来打破嵌套的for循环,它不需要任何标签。
在您的情况下,您需要有一个足以打破循环的条件。
这里有一个例子:
var arr = [[1,3], [5,6], [9,10]];
for (var a = 0; a<arr.length; a++ ){
for (var i=0; i<arr[a].length; i++) {
console.log('I am a nested loop and i = ' + i);
if (i==0) { break; }
}
console.log('first loop continues');
}
它记录如下:
> I am a nested loop and i = 0
> first loop continues
> I am a nested loop and i = 0
> first loop continues
> I am a nested loop and i = 0
> first loop continues
返回;语句在这种情况下不起作用。 工作的钢笔
其他回答
看到亚伦的。否则: J =5;i=5而不是break。
Break不带参数。有两种变通方法:
将它们包装在一个函数中并调用return 在内部循环中设置一个标志,如果设置了标志,则在循环结束后再次中断。
你应该能够打破一个标签,像这样:
function foo () {
dance:
for (var k = 0; k < 4; k++) {
for (var m = 0; m < 4; m++) {
if (m == 2) {
break dance;
}
}
}
}
function myFunction(){
for(var i = 0;i < n;i++){
for(var m = 0;m < n;m++){
if(/*break condition*/){
goto out;
}
}
}
out:
//your out of the loop;
}
在多级循环中使用function -这是一个好方法:
function find_dup () {
for (;;) {
for(;;) {
if (done) return;
}
}
}