JavaScript forEach break 退出循环的两种方法
作者:admin 时间:2022-7-5 9:45:48 浏览:不像for
循环可以用break
强迫退出循环,forEach
循环需要另寻方法强行退出循环,本文将介绍两种实现方法。
使用抛出错误来退出 forEach 循环
我们需要将 Array.prototype.forEach
循环包装在 try catch
语句中,以便我们可以捕获我们将要抛出的错误,中断循环。
示例:
const breakFE = () => {
throw new Error("BREAK_FE")
}
const handleBreakFEError = e => {
if (e.message !== "BREAK_FE") {
throw e
} else {
console.log("javascript foreach break!")
}
}
try {
[1, 2, 3].forEach(item => {
if (item > 1) {
breakFE()
}
console.log(item)
})
} catch (e) {
handleBreakFEError(e)
}
输出
1
javascript foreach break!
使用 if 语句退出 forEach 循环
示例:
let breakFe = false;
[1, 2, 3].forEach(item => {
if (item > 1) {
return
}
console.log(item)
})
该示例说明如何使用 if
语句跳过 forEach
循环中的计算。
实际上不能使用 if
语句“中断” JavaScript forEach
循环,因为它仍会在你的数组上执行所有迭代。
但是你可以大大减少每次迭代中发生的工作量。
如果你在 forEach
循环的每次迭代中进行大量计算,那么虽然并不完美,但你可以使用 if
语句来减轻执行该工作的情况,这有点像在每次迭代时调用 continue
。
总结
本文介绍了两种 break
退出 JavaScript forEach
循环的方法,不过这并非理想,如果你需要中途退出循环,你最好使用 for
循环,而不是 forEach
循环。你可以了解一下for与forEach循环的几个区别,此外,你要了解,不是所有浏览器都支持forEach
语句,JS中不兼容IE浏览器的循环语句有哪些?for..of等,如果数据量较大,你可能还需要考虑到程序执行的速度性能问题,通过实测速度比较:JS中的for、for...of和forEach循环,你可能更明白自己需要选择何种循环方法。
相关文章
- 站长推荐