我试了一下:
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循环。
function foo ()
{
//dance:
for(var k = 0; k < 4; k++){
for(var m = 0; m < 4; m++){
if(m == 2){
//break dance;
return;
}
}
}
}
foo();
其他回答
不幸的是,你必须设置一个标志或使用标签(想想老式的goto语句)
var breakout = false;
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
breakout = true;
break;
}
if (breakout) break;
alert(1)
};
标签方法如下所示:
end_loops:
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
break end_loops;
}
alert(1)
};
编辑:标签放置错误。
还看到:
http://www.devguru.com/Technologies/ecmascript/quickref/break.html http://www.daaq.net/old/javascript/index.php?page=js+exiting+loops&parent=js+statements
返回“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中打破嵌套循环的最佳方法?
请在发表问题前搜索。这个链接是我在本页左侧看到的第一个相关问题!
你可以用'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
返回;语句在这种情况下不起作用。 工作的钢笔
打破第一个循环:
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;
};