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 只要找到目标值,就会跳出循环
相关推荐
Cobyte16 小时前
15.响应式系统比对:链表在 Preact Signals 响应式系统中的应用
前端·javascript·vue.js
ZengLiangYi16 小时前
SourceAdapter 插件架构详解
javascript·算法·架构
basketball61616 小时前
Go 语言从入门到进阶:5. 玩转Go函数
开发语言·后端·golang
ZengLiangYi16 小时前
如何解析 5 种完全不同格式的 AI 对话
javascript·人工智能·算法
多彩电脑16 小时前
Kivy如何自定义事件
开发语言·python
java_cj16 小时前
LangChain初入门 - 简化LLM开发难度的利器
开发语言·python·langchain
sleven fung16 小时前
llama-cpp-python 本地部署入门
开发语言·python·算法·llama
头歌实践平台16 小时前
C++面向对象 - 运算符重载的应用
开发语言·c++·算法
福大大架构师每日一题16 小时前
rust 1.96.0 更新:语言、编译器、Cargo、Rustdoc、兼容性全面升级,必看完整解读
android·开发语言·rust
思麟呀16 小时前
C++11并发编程:互斥锁
linux·开发语言·c++·windows