「前端每日一问(14)」JavaScript 中如何中断 forEach 循环?

1,452 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

本题难度:⭐

答: JS中,数组的 forEach 方法不能用常规的方式中断,只能使用try catch 抛出异常来变相中断。

  • forEach 不支持 break 和 continue,只能使用 return。

  • 在 forEach 中使用 return 相当于 for 循环中的 continue。

const arr = [1, 2, 3]
arr.forEach(item => {
  if (item === 2) {
    return false // 相当于 for 循环中的 continue
  } else {
    console.log(item)
  }
})
// 1
// 3

forEach 中使用 break 直接报错。

image.png

// 使用抛出异常的方式来中断
const arr = [1, 2, 3]
try {
  arr.forEach(item => {
    if (item === 2) {
      throw new Error('跳出 forEach')
    } else {
      console.log(item)
    }
  })
} catch (err) {
  console.log(err)
}

image.png

千万不要秀这种骚操作,要中断就不用 forEach,用 for 循环然后 break 就好了。

最后,用一个表格来总结下 JS 中的跳出循环操作,✅ 表示可以跳出循环,❌ 表示写法不合法,会报错。

方法breakcontinuereturn
for循环跳出本次循环
for in跳出本次循环
for of跳出本次循环
forEach跳出本次循环
map跳出本次循环
filter跳出本次循环
every直接return 或 return false:✅,return true:不报错,但无效果
somereturn true:✅,直接return 或 return false:不报错,但无效果

结尾

如果我的文章对你有帮助,你的👍就是对我最大的支持^_^

我是阿林,输出洞见技术,再会!

上一篇:

「前端每日一问(13)」说一下数组 reduce 方法的一些用法

下一篇:

「前端每日一问(15)」JavaScript 字符串的常用方法有哪些?