跳转到内容

关于 forEach 使用 break 跳出循环

刀刀

3/20/2025

0 字

0 分钟

错误抛出

如果采用错误抛出的方法来结束循序,代码如下:

js
arr.forEach(item => {
    if(item.id === '2') throw 'Error'
})

console.log('后续执行的代码')

执行后我们发现,虽然循环停止了,但是后续的代码也不再执行了。这显然不是我们想要的效果,需要做点改进。

try...catch

在之前,我们有用过通过 try...catch... 捕获抛出的异常错误,可以用在这里,到捕获到 forEach 抛出的错误后,catch 内执行后续的代码。

js
try {
    arr.forEach(item => {
    	if(item.id === '2') throw 'Error'
	})
} catch {
	console.log('后续执行的代码')
}

现在运行代码,能够正常执行,且效果是我们想要的效果。

题外话

用异常控制语句来达到流程控制语句的效果,这是一种反模式,不要在工作中使用。代码要么改为for需要,要么根据实际情况,先用 filter 过滤一遍再处理。