Skip to main content

代码优化

跳出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