我试了一下:

for(i = 0; i < 5; i++){
    for(j = i + 1; j < 5; j++){
        break(2);
    }
    alert(1);
}

结果却得到:

SyntaxError:缺失;在声明中

那么,如何在JavaScript中打破嵌套循环呢?


当前回答

返回“break”你嵌套的for循环。

function foo ()
{
    //dance:
    for(var k = 0; k < 4; k++){
        for(var m = 0; m < 4; m++){
            if(m == 2){
                //break dance;
                return;
            }
        }
    }
}
foo();

其他回答

打破第一个循环:

for(i=0;i<5;i++)
{
  for(j=i+1;j<5;j++)
  {
    //do something

    break;
  }
  alert(1);
};

打破这两个循环:

for(i=0;i<5;i++)
{
  var breakagain = false;
  for(j=i+1;j<5;j++)
  {
    //do something

    breakagain = true;
    break;
  }
  alert(1);
  if(breakagain)
    break;
};

返回“break”你嵌套的for循环。

function foo ()
{
    //dance:
    for(var k = 0; k < 4; k++){
        for(var m = 0; m < 4; m++){
            if(m == 2){
                //break dance;
                return;
            }
        }
    }
}
foo();
loop1:
    for (var i in set1) {
loop2:
        for (var j in set2) {
loop3:
            for (var k in set3) {
                break loop2;  // breaks out of loop3 and loop2
            }
        }
    }

在Javascript中打破嵌套循环的最佳方法?

请在发表问题前搜索。这个链接是我在本页左侧看到的第一个相关问题!

封装一个自执行函数并返回

(function(){
    for(i=0;i<5;i++){
        for (j=0;j<3;j++){
            //console.log(i+' '+j);
            if (j == 2) return;
        }
    }
})()

Break不带参数。有两种变通方法:

将它们包装在一个函数中并调用return 在内部循环中设置一个标志,如果设置了标志,则在循环结束后再次中断。