forEach为啥中断不了?怎么中断forEach循环?

为什么forEach循环return不了?怎么才能强制中断它?不太明白。

阅读 4.3k
3 个回答
引自MDN
There is no way to stop or break a forEach() loop other than by throwing an exception. If you need such behavior, the forEach() method is the wrong tool.
注意: 没有办法中止或者跳出 forEach() 循环,除了抛出一个异常。如果你需要这样,使用 forEach() 方法是错误的。
若你需要提前终止循环,你可以使用:
简单循环
for...of 循环
Array.prototype.every()
Array.prototype.some()
Array.prototype.find()
Array.prototype.findIndex()

你也可以观看我的们教程视频教程-如何中断forEach循环-冰山工作室-沙翼-web前端

list.filter {condition}.forEach()
let BreakException = {}
try {
  this.contentData.forEach(item => {
    if (item.type === 'service') {
      if (!item.data.length) {
        status = false
        throw BreakException
      }
    }
  })
} catch (e) {
  if (e !== BreakException) {
    throw e
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏