代码优化
跳出ForEach
首先forEach无法通过break来跳出当前循环,也不用通过continue来继续当前循环。
- 常见场景
xxxxxxxx.js
// 跳出当前循环
try {
arr.forEach(item => {
if (item == 4){
throw new Error(1)
}
})
} catch(e) {
if(e.message == 1){
// 条件达成,跳出循环
}
}
// 继续循环
arr.forEach(item => {
if (item <= 40){
return // 相当于continue
}
})
如果在forEach中需要用到跳出或者继续循环等相关控制,证明当前的业务应该采用some
或者every
来代替,它们有更好的可读性和明确的意图,不用在检测函数中额外采用跳出或者继续的逻辑
some(callback:boolean):boolean
只要遍历过程中有一个元素返回true,遍历就会终止every(callback):boolean