JS中如何跳出.forEach循环

2023-11-06

写在前面

        提到在一段程序中如果碰到需要终止,结束一个循环,函数或者一段代码,一般会想到以下这几个关键字returncontinuebreak

简述一下三者的区别:

  • break: 终止整个循环(有内层循环时终止的是内层循环),退出switch语句;只能用于循环或者switch语句中,其他地方使用会报错
  • continue:与break相似,不同之处在于结束的是本次循环,相当于跳过本次循环执行下一次循环;只能用于while,do/while,for,for/in循环中,其他地方使用会报错
  • return: return false截断语句之后的代码执行,如果用于函数中,可以返回一个特点的值,做完函数的返回值;不能用在循环中

回到正题——break/continue只能针对普通循环跳出,当碰到forEach循环时,就不会奏效

为啥不奏效?

  • forEach每一个循环实际上是一个匿名函数,所以使用break,continue你发现会报错

        fc

  •  使用return false截断的是本次循环匿名函数语句下方的代码执行,继续执行下一次遍历函数

具体实现

        方法一:改用普通for循环,这样就可以使用break,continue

let arr = [1, 2, 3, 4, 5];
for(let i = 0; i < arr.length; i++){
    if(i === 2) break; // 或continue
    console.log(arr[i])
}

// 结果
1
2

// continue
1
2
4
5

        方法二:利用try...catch在特定时机抛出异常达到跳出循环的效果

let arr = [1, 2, 3, 4, 5],
    key;
try {
    arr.forEach(item => {
        if(item === 2) {
            key = item; // 记录跳出循环时机
            throw Error()
        }
        console.log(item)
    })
} catch(error) {
  // 跳出循环后要做的操作
  ...
}
console.log('跳出循环时机:'+:key)

// 结果
1
2
跳出循环时机:2

ok!虽然知识点虽小,但不积跬步无以至千里,而且好记性不如烂笔头,特写下来增加记忆。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS中如何跳出.forEach循环 的相关文章

随机推荐

  • 【数据库】当日期(时间)为条件,查询oracle数据库,以及出现ORA-01849:小时值必须介于1和12之间时的解决方法

    说明 数据库 Oracle 11g 可视化 Navicat Premiu 15 注意 在ORACLE中 时间格式默认时间为12小时制 所以如果出现 ORA 01849 小时值必须介于1和12之间 的提醒 需要把下面中的 yyyy MM dd
  • 实现一个高性能网络通讯库的要点

    实现一个高性能网络通讯库的要点 由于硬件的发展速度快 本来占时间消耗小头的软件层 变成了大头 原本占性能比例非常小的的中断 上下文切换 也成为了性能优化的方向 许多bypass kernel的方案开始发展起来 以前在千兆网卡普及的时代 就有
  • Java之增删改查

    增删改查 一 搭建底层代码 二 界面 一 搭建底层代码 首先导入我们需要的jar包依赖 导入我们需要的js 结构目录 各包展示 DBHelpoer java package com xlb util import java io Input
  • Spring Boot类型安全的配置属性

    23 7 类型安全的配置属性 使用 Value property 注解注入配置属性有时可能比较笨重 特别是需要使用多个properties或你的数据本身有层次结构 为了控制和校验你的应用配置 Spring Boot提供一个允许强类型bean
  • Where子句

    Where 子句 搜索 empno 等于 7900 的数据 Select from emp where empno 7900 Where 条件 筛选行 条件 列 比较运算符 值 比较运算符包涵 gt lt gt lt lt gt 表示 不等
  • 大厂领导为什么喜欢跨层与下属聊天

    作为一个在大厂里面浸淫十几年的loser 平时主要精力没用在技术提升上 对于大厂的人情世故各类八卦倒是研究的透彻 如果你细心观察 会发现一些大的公司里面 领导喜欢跨层与下属去沟通聊天 我待过几家比较大的公司 这个现象还是比较普遍 今天就摆一
  • 基于物联网的视觉暂留风扇设计

    论文下载 知网链接 版权所有 有相关问题或索要完整代码实现请联系作者gzn00417或邮箱gzn00417 foxmail com 基于物联网的视觉暂留风扇设计 郭茁宁1 林亦宁2 何胜阳2 哈尔滨工业大学计算机科学与技术学院 黑龙江 哈尔
  • I - LCM of GCDs(约数)

    I LCM of GCDshttps vjudge csgrandeur cn problem AtCoder arc124 c思路 枚举其a 1 和b 1 所有因数 就是将其归类到红蓝两个袋子里去 然后依次判断一对 a i b i 中是否
  • 关于响度、响度级、声强、声强级、声压、声压级、分贝、方、电平、增益、音高、音分

    在录音声学里 响度 响度级 声强 声强级 声压 声压级 分贝 方 电平 增益 音高 音分总是令人头疼的若干概念 这里简单的说一下他们的意义和区别 让我们把它们的顺序整理一下 分贝 分贝是声级测量中最常用的单位 被简写为dB 其中小写的d代表
  • 牛客网-坐标移动

    题目描述 开发一个坐标计算工具 A表示向左移动 D表示向右移动 W表示向上移动 S表示向下移动 从 0 0 点开始移动 从输入字符串里面读取一些坐标 并将最终输入结果输出到输出文件里面 输入 合法坐标为A 或者D或者W或者S 数字 两位以内
  • Android性能篇之(八)Android内存溢出/泄漏常见案例分析及优化方案最佳实践总结

    内存溢出是Android开发中一个老大难的问题 相关的知识点比较繁杂 绝大部分的开发者都零零星星知道一些 但难以全面 本篇文档会尽量从广度和深度两个方面进行整理 帮助大家梳理这方面的知识点 基于Java 一 Java内存的分配 这里先了解一
  • Camera.ScreenToWorldPoint方法介绍

    Camera ScreenToWorldPoint方法介绍 Camera ScreenToWorldPoint是Unity中的一个方法 用于将屏幕坐标系中的点转换为世界坐标系中的点 这个方法通常用于将鼠标点击的位置 屏幕坐标系 转换为游戏世
  • 使用WPS Office模糊处理图片-可用作浏览器背景

    前文转到 给浏览器设置一个图片背景 主题 使用WPS Office模糊处理图片 可用作浏览器背景 步骤如下 1 打开WPS Office 新建一个空白PPT 或者右键 新建 PPT演示文稿 2 将你的图片插入到空白页上 点击 插入 形状 矩
  • xssgame第六关至第八关

    第六关 先试试a标签 可以看到 a标签这里被转义了 再试试其他标签 nm use ver alert 1 转换大小写 成功过关 第七关 可以看到 过滤掉了script 于是采取重复嵌套的方式 第八关 首先 测试script 发现点击添加友情
  • Password Validation using regular expressions(JavaScript)

    Including digit check uppercase check lowercase check the length of password check blank check
  • CentOS7常用工具包安装

    CentOS7常用工具包安装 环境 CentOS 7 9 工具 Xshell7 1 wget下载工具 yum y install wget 2 gcc nginx之类由c语言开发的 编译的时候需要用到 yum y install gcc g
  • 求n的阶乘的方法

    n 1 2 3 4 n 具体来说1 2后再乘3再乘4 依次下去 1 首先用循环的方式 include
  • Linux下备份文件到其他服务器

    最近遇到需求 需要定时将文件备份到其他服务器 于是记录一下 本文旨在描述如何通过rsync插件实现服务器之间的文件备份 以下统一将备份文件所在服务器称为 源服务器 接收备份文件的服务器为 目标服务器 目录 一 为什么用rsync 二 安装r
  • 51单片机学习:外部中断0实验

    实验名称 外部中断0实验 接线说明 实验现象 下载程序后 当按下K3键可控制D1指示灯亮灭 注意事项 将红外接收传感器取下 防止对P3 2口干扰 include reg52 h typedef unsigned int u16 对系统默认数
  • JS中如何跳出.forEach循环

    写在前面 提到在一段程序中如果碰到需要终止 结束一个循环 函数或者一段代码 一般会想到以下这几个关键字return continue break 简述一下三者的区别 break 终止整个循环 有内层循环时终止的是内层循环 退出switch语