JS 的 Array.forEach 方法如何跳出循环

2024-04-10 03:28

本文主要是介绍JS 的 Array.forEach 方法如何跳出循环,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. for 结束循环

众所周知,在 for 循环语句中,遇到 break 会结束循环。但是如何在数组方法 array.forEach() 中如何结束循环呢 ?

 
  1. const arr = ['html', 'css', 'js', 'vue', 'php']
  2. for (let i = 0; i < arr.length; i++) {
  3. // 第一次循环输出: html
  4. // 第二次循环输出: css
  5. // 第三次循环输出: js
  6. console.log(arr[i]);
  7. // 第三次循环时,条件成立,停止循环
  8. if (arr[i] == 'js') break;
  9. }
2. forEach 结束循环

forEach 本身无法跳出循环,但是我们可以通过系统的一些强制性方法使其结束循环,如下所示:

 
  1. try {
  2. arr.forEach(item => {
  3. if (item == 'js') throw new Error('结束循环');
  4. })
  5. } catch (error) {
  6. console.log(error.message);
  7. }

上面写法存在问题,当循环中有一些其他异常时,理应抛出异常,而不是认为是结束循环的异常。改进后:

 
  1. try {
  2. arr.forEach(item => {
  3. console.log(item);
  4. if (item == 'css') item + a; // a is not defined
  5. if (item == 'js') throw new Error('结束循环');
  6. })
  7. } catch (error) {
  8. if (error.message !== '结束循环') {
  9. throw error;
  10. }
  11. }
3. 利用高阶函数进行循环

Array.some() 方法用于检测数组中的元素是否满足指定条件,有一个满足就停止循环,然后返回 true

也就是闭包函数的返回值为 true 时,停止循环。利用这一特性,可以控制循环中何时返回 true,进行控制何时结束循环

 
  1. const arr = ['html', 'css', 'js', 'vue', 'php']
  2. arr.some(item => {
  3. // 循环三次,依次输出 html css js
  4. console.log(item);
  5. if (item == 'js') {
  6. return true
  7. }
  8. })

Array.every() 方法用于检测数组中的所有元素是否满足指定条件,有一个不满足就停止循环,然后返回 false

同理,通过控制返回值,一样能控制何时结束循环

 
  1. const arr = ['html', 'css', 'js', 'vue', 'php']
  2. arr.every(item => {
  3. // 循环三次,依次输出 html css js
  4. console.log(item);
  5. if (item == 'js') {
  6. return false
  7. }
  8. return true
  9. })
4. 开发中到底应该使用哪种方式

开发中,遇到需要循环一个数组,并且当循环到某一个元素时要跳出循环,建议书写方式如下所示:

 
  1. const arr = ['html', 'css', 'js', 'vue', 'php']
  2. // 推荐方式一
  3. for (let i = 0; i < arr.length; i++) {
  4. if (arr[i] == 'js') {
  5. break;
  6. }
  7. }
  8. // 推荐方式二
  9. arr.some(item => {
  10. if (item == 'js') {
  11. return true
  12. }
  13. })

这篇关于JS 的 Array.forEach 方法如何跳出循环的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889954

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

Python错误AttributeError: 'NoneType' object has no attribute问题的彻底解决方法

《Python错误AttributeError:NoneTypeobjecthasnoattribute问题的彻底解决方法》在Python项目开发和调试过程中,经常会碰到这样一个异常信息... 目录问题背景与概述错误解读:AttributeError: 'NoneType' object has no at

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)