forEach相比较for,for..in,for..of循环,缺点就是不能continue 和break,但是可以通过其他方式实现

continue

实现方式:return

 [1,2,3,4,5].forEach(function(item,index){
        if(item == 3){
            return
        }
        console.log(3)// item == 3时,执行不到该部分,结束本次循环
    })
break

实现方式:throw new Error()配合try..catch

try {
    [1,2,3,4,5].forEach(function(item,index){
        if(item == 3){
            thorw new Error(); //结束整体循环
        }
    })
} catch(e) {

}

多层循环

try {
    ["a","b","c"].forEach(function(item,index){

        try {
            [1,2,3,4,5].forEach(function(item,index){
                if(item == 3){
                    thorw new Error(); //结束整体循环
                }
            })
        } finally{}//try不能单独存在

        <!--catch(e) {-->
            //内层的catch不能存在,不然会捕获异常,只结束内层forEach
        <!--}-->

    })
} catch(e) { //在最外层捕获异常,可结束嵌套循环

}

yingmhd
67 声望4 粉丝

路漫漫其修远兮,吾将上下而求索