outerloop:
for (var i = 0; i < 10; i++) {
innerloop:
for (var j = 0; j < 10; j++) {
if (j > 3) {
break; //默认跳出最近的for 等同 break innerloop;
}
if (i == 2) {
break innerloop;
}
if (i == 4) {
break outerloop;
}
console.log("i=" + i + " j=" + j + "\n");
}
}
打印结果:
i=0 j=0
i=0 j=1
i=0 j=2
i=0 j=3
i=1 j=0
i=1 j=1
i=1 j=2
i=1 j=3
i=3 j=0
i=3 j=1
i=3 j=2
i=3 j=3
注意i==4时候 跳出outerloop外循环,j>3时跳过本次innerloop内循环
label标签使用场景实例:
复制数组data的真性值3次,插入到新素组data2 并且过滤data内等于8的值 不进行复制
//使用label标签写法
function fn(){
let data=[1,2,false,3,,4,5,null,8,9]
let data2=[];
lab:for(let i=0;i<data.length;i++){
if(!data[i]) continue;
for(let o=0;o<3;o++){
if(data[i]===8) continue lab;
data2.push(data[i])
}
console.log(data[i])
}
console.log(data2)
}
//常规不使用label 写法
function fn() {
let data = [1, 2, false, 3, , 4, 5, null, 8, 9]
let data2 = [];
data.forEach((value, index) => {
if(value&&value!==8){
for(let i=0;i<3;i++){
data2.push(value)
}
}
})
console.log(data2)
}