正常终止for循环我们可以使用break关键字来实现,而在forEach循环中是不能使用break和continue这两个关键字的,为什么呢?
因为这两个关键字要在循环中使用,而forEach中所执行的是callback,callback是个函数所以不能使用。
那在forEach中应该怎么样终止循环呢?使用return?
使用 return 的话,只能跳出本次循环执行下一次循环,并不会终止forEach循环。
可以使用 抛出错误 的方式来真正的终止forEach循环:
let arr = [1,2,3]
try{
arr.forEach(item => {
if(item == 2){
throw Error()
}
})
}catch(err){
if(err.message === 'End Loop') throw err //抛出真正的错误
}