js for和forEach 跳出循环 替代方案

1 for循环跳出

javascript 复制代码
for(let i=0;i<10;i++){
    if(i===5){
        break;
    }
    console.log(i)
}

在函数中也可以return跳出循环

javascript 复制代码
function fn(){
  for(let i=0;i<10;i++){
    if(i===5){
        return;
    }
    console.log(i)
  }
}
fn()

for ... of效果同上

2 forEach循环跳出

break会报错

javascript 复制代码
[1,2,3,4,5,6,7,8,9,10].forEach(i=>{
    if(i===5){
        break;
    }
    console.log(i)
})

return不能跳出forEach循环

javascript 复制代码
[1,2,3,4,5,6,7,8,9,10].forEach(i=>{
    if(i===5){
        return;
    }
    console.log(i)
})

try...catch可以跳出循环

javascript 复制代码
try{
    [1,2,3,4,5,6,7,8,9,10].forEach(i=>{
        if(i===5){
            throw new Error('跳出循环');
        }
        console.log(i)
})}catch(e){
    console.log(e)
}

3 替代方案

一些情况下,可以使用some,find,every去代替foreach退出循环

  • some 只要有一项为true,跳出循环。
  • every 只有每一项都返回true,函数返回true ,所以只要有一项不是true就会跳出循环
  • find 只要找到目标值,就会跳出循环
相关推荐
严谨的麻辣烫20 分钟前
Python HTTP 连接池怎么用?从连接复用到请求异常排查
开发语言·python·http·requests·网络排查
码林鼠24 分钟前
flutter状态管理入门教程-Riverpod
开发语言·javascript·flutter
互影派37 分钟前
分享:Cocos 互动影游一套代码双端分发(Web H5 + Windows/Steam)实践
javascript
system_error_x1 小时前
C++ 编程基础入门教程
开发语言·c++
Amos_Web1 小时前
Markdonw语法
开发语言·前端·javascript
全栈项目管理程序猿1 小时前
ArcGIS JS 基础教程(34):体元系列 - 等值面 VoxelIsosurface
前端·javascript
SensorFlow1 小时前
离页埋点:sendBeacon 返回 true,为什么还不能算接收成功
javascript
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 回顾和今日内容介绍
java·开发语言·交友
兔子零10241 小时前
架构师最危险的能力:用正确的技术,做出错误的架构决策
前端·javascript·后端
Bug收容所2 小时前
Vue+js Day2
前端·javascript·vue.js