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 只要找到目标值,就会跳出循环
相关推荐
kokunka4 分钟前
C#类修饰符功能与范围详解
java·开发语言·c#
仟濹16 分钟前
【Java 基础】3 面向对象 - this
java·开发语言·python
Dxy123931021621 分钟前
Python一个类的特殊方法有哪些
开发语言·python
爱吃烤鸡翅的酸菜鱼29 分钟前
如何用【rust】做一个命令行版的电子辞典
开发语言·rust
不爱学英文的码字机器41 分钟前
Rust 并发实战:使用 Tokio 构建高性能异步 TCP 聊天室
开发语言·tcp/ip·rust
soda_yo1 小时前
搞不懂作用域链?这篇文章让你一眼秒懂!
javascript·面试
redtro951 小时前
【开发备忘】GeoServer相关两则:发布时间维ImageMosaic+客户端WMS样式
java·开发语言·spring
..空空的人1 小时前
C++基于websocket的多用户网页五子棋 ---- 模块介绍1
开发语言·c++·websocket
apollo_qwe1 小时前
Set 和 Map常用场景代码片段
javascript
代码不停1 小时前
Java模拟算法题目练习
java·开发语言·算法