问题四:JavaScript跳出(终止)forEach循环

心已赠人 2022-10-16 07:45 262阅读 0赞

错误方法一:使用break结束循环

  1. let arr = [12,13,15,16,17]
  2. // 直接报错
  3. arr.forEach((v)=>{
  4. if(v===13){
  5. break;
  6. }
  7. console.log(v)
  8. })

错误方法二:使用return false结束循环

  1. let arr = [12,13,15,16,17]
  2. arr.forEach((v)=>{
  3. if(v===13){
  4. return false
  5. }
  6. console.log(v)
  7. })
  8. // 输出 12 15 16 17

forEach()无法在所有元素都传递给调用的函数之前终止遍历
return false 的作用在这里起到的作用:只是终止本次继续执行,而不是终止for循环

正确的方法

采用特殊情况特殊处理,这里可以采用抛出异常的方法来终止程序继续执行

  1. let arr = [12,13,15,16,17]
  2. try{
  3. arr.forEach((v)=>{
  4. if(v===16){
  5. throw new Error('停止执行')
  6. }
  7. console.log(v)
  8. })
  9. } catch (e){
  10. console.log(e)
  11. }
  12. // 输出 12 13 15
  13. // Error: 停止执行
  14. // at <anonymous>:4:19
  15. // at Array.forEach (<anonymous>)
  16. // at <anonymous>:2:9

结束for循环才使用for循环

  1. for(let i=0;i<=5;i++){
  2. if(i===3){
  3. break;
  4. }
  5. console.log(i)
  6. }
  7. // 输出 0 1 2

发表评论

表情:
评论列表 (有 0 条评论,262人围观)

还没有评论,来说两句吧...

相关阅读