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 直接报错。
// 使用抛出异常的方式来中断
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)
}
千万不要秀这种骚操作,要中断就不用 forEach,用 for 循环然后 break 就好了。
最后,用一个表格来总结下 JS 中的跳出循环操作,✅ 表示可以跳出循环,❌ 表示写法不合法,会报错。
方法 | break | continue | return |
---|---|---|---|
for循环 | ✅ | 跳出本次循环 | ❌ |
for in | ✅ | 跳出本次循环 | ❌ |
for of | ✅ | 跳出本次循环 | ❌ |
forEach | ❌ | ❌ | 跳出本次循环 |
map | ❌ | ❌ | 跳出本次循环 |
filter | ❌ | ❌ | 跳出本次循环 |
every | ❌ | ❌ | 直接return 或 return false:✅,return true:不报错,但无效果 |
some | ❌ | ❌ | return true:✅,直接return 或 return false:不报错,但无效果 |
结尾
如果我的文章对你有帮助,你的👍就是对我最大的支持^_^
我是阿林,输出洞见技术,再会!
上一篇:
「前端每日一问(13)」说一下数组 reduce 方法的一些用法
下一篇: