问题四:JavaScript跳出(终止)forEach循环
错误方法一:使用break结束循环
let arr = [12,13,15,16,17]
// 直接报错
arr.forEach((v)=>{
if(v===13){
break;
}
console.log(v)
})
错误方法二:使用return false结束循环
let arr = [12,13,15,16,17]
arr.forEach((v)=>{
if(v===13){
return false
}
console.log(v)
})
// 输出 12 15 16 17
forEach()无法在所有元素都传递给调用的函数之前终止遍历
return false 的作用在这里起到的作用:只是终止本次继续执行,而不是终止for循环
正确的方法
采用特殊情况特殊处理,这里可以采用抛出异常的方法来终止程序继续执行
let arr = [12,13,15,16,17]
try{
arr.forEach((v)=>{
if(v===16){
throw new Error('停止执行')
}
console.log(v)
})
} catch (e){
console.log(e)
}
// 输出 12 13 15
// Error: 停止执行
// at <anonymous>:4:19
// at Array.forEach (<anonymous>)
// at <anonymous>:2:9
结束for循环才使用for循环
for(let i=0;i<=5;i++){
if(i===3){
break;
}
console.log(i)
}
// 输出 0 1 2
还没有评论,来说两句吧...