乐趣区

关于前端:前端面试题之forEach跳出循环

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) {// 在最外层捕捉异样,可完结嵌套循环}
退出移动版