在JavaScript中,forEach方法是用于遍历数组的,通常没有直接终止循环的机制。然而,我们可以使用一些技巧来模拟终止forEach循环。以下是几种常见的方法

1.使用return语句:在forEach回调函数内部使用return语句可以实现类似终止循环的效果。当需要终止循环时,可以在回调函数中返回false或者任意其他特定值。

const arr = [1, 2, 3, 4, 5, 6, 7];
let terminate = false; arr.forEach((element) => {
if (terminate) {
return;
} console.log(element); if (element === 3) {
terminate = true; // 终止循环
}
});

2.使用异常处理:通过抛出一个自定义的异常,可以终止forEach循环。在捕获到该异常后,程序会跳出forEach循环。

const arr = [1, 2, 3, 4, 5, 6, 7];

try {
arr.forEach((element) => {
console.log(element); if (element === 3) {
throw 'TerminateException'; // 抛出自定义异常
}
});
} catch (e) {
if (e !== 'TerminateException') {
throw e; // 抛出其他异常
}
}

3.使用for...of循环:如果只需要在特定条件下终止循环,可以考虑使用for...of循环代替forEach循环。for...of循环支持break语句来终止循环。

const arr = [1, 2, 3, 4, 5, 6, 7];

for (const item of arr) {
console.log(item); if (item === 4) {
break; // 终止循环
}
}

4.将数组长度设置成0

const array = [ 1, 2, 3, 4, 5, 6, 7 ]

array.forEach((item) => {
if (item >= 4) {
console.log(item) // 输出:4
array.length = 0
}
})

5.建议使用for循环和some方法

const arr = [1, 2, 3, 4, 5, 6, 7]

for (let i = 0, len = arr.length; i < len; i++) {
if (arr[ i ] >= 4) {
console.log(arr[ i ]) // 4
break // return
}
}

6.双层for循环跳出循环

// 双层for循环跳出循环 =>
for (let index = 0; index < 10; index++) {
console.log('--------', '第一个循环');
let flag = false;
for (let ind = 0; ind < 10; ind++) {
console.log('--------', '第二个循环', index, ind);
if(index * ind > 20) {
console.log('--------', '跳出循环');
flag = true;
break;
}
}
if(flag) {
break
}
} outer: for (let index = 0; index < 10; index++) {
console.log('--------', '第一个循环');
for (let ind = 0; ind < 10; ind++) {
console.log('--------', '第二个循环', index, ind);
if(index * ind > 20) {
console.log('--------', '跳出循环');
break outer; // 这个是跳出整个循环
// return 这个是终止循环
}
}
}

感谢大大关注!!!

JavaScript中如何终止forEach循环&跳出for(双层)循环?的更多相关文章

  1. JavaScript中如何中断forEach循环

    先来看下forEach的实现 // Production steps of ECMA-262, Edition 5, 15.4.4.18// Reference: http://es5.github. ...

  2. JavaScript中Map和ForEach的区别

    译者按: 惯用Haskell的我更爱map. 原文: JavaScript — Map vs. ForEach - What’s the difference between Map and ForE ...

  3. JavaScript 中 map、foreach、reduce 间的区别

    一直对map.foreach.reduce这些函数很是生疏,今天看underscorejs时好好研究了一下,一研究我就更懵了,这不是一样嘛,都是遍历,所以我就去知乎找了一下,整理出了比较好的几个说法. ...

  4. 浅谈JavaScript中的Function引用类型

    引言 在JavaScript中最有意思的就是函数了,这一切的根源在于函数实际上是一个对象.每一个函数都是Function类型的实例,而且都和其他引用类型的实例一样具有属性和方法.函数作为一个对象,因此 ...

  5. 理解 JavaScript 中的 for…of 循环

    什么是 for…of 循环 for...of 语句创建一个循环来迭代可迭代的对象.在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议. ...

  6. 深入了解 JavaScript 中的 for 循环

    在ECMAScript5(简称 ES5)中,有三种 for 循环,分别是: 简单for循环 for-in forEach 在2015年6月份发布的ECMAScript6(简称 ES6)中,新增了一种循 ...

  7. Javascript中while和do-while循环用法详解

    while循环 while 语句与 if 语句相似,都有条件来控制语句(或语句块)的执行,其语言结构基本相同:while(conditions){    statements;} while 语句与 ...

  8. 深入了解JavaScript中的for循环

    在ECMAScript5中,有三种for循环,分别是: 简单for循环 for-in forEach 在ES6中,新增了一种循环 for-of 简单for循环 const arr = [1, 2, 3 ...

  9. Javascript/Jquery 中each() 和forEach()的区别

    从名字看上去这两个方法好像有点关系,但在javascript中它们区别还是挺大的. forEach() 用于数组的操作,对数组中的每个元素执行制定的函数(不是数组不能使用forEach()方法). 而 ...

  10. JavaScript中的for in循环

    在学习AJAX的时候,发现JavaScript中for in循环,这种循环对于遍历JSON是很好用的.于是写下了这篇博文 作用 for in循环本质上是forEach循环,它主要有两个作用 遍历数组 ...

随机推荐

  1. 京东:Flink SQL 优化实战

    简介: 本文着重从 shuffle.join 方式的选择.对象重用.UDF 重用等方面介绍了京东在 Flink SQL 任务方面做的优化措施. 本文作者为京东算法服务部的张颖和段学浩,并由 Apach ...

  2. 排查指南 | 两个案例学会从埋点排查 iOS 离线包

    ​简介: 首次打开离线包白屏以及报错"-1009"等该如何处理呢? ​ 离线包原理 以一次启动离线包的流程为例,离线包的加载流程分为两种场景,第一种是离线包下载好的场景,流程如图1 ...

  3. 开源相机管理库Aravis例程学习(四)——multiple-acquisition-signal

    目录 简介 例程代码 函数说明 g_main_loop_new g_main_loop_run g_main_loop_quit g_signal_connect arv_stream_set_emi ...

  4. SpringMVC学习二(日期参数/数据保存/重定向)

    接受的参数为日期类型 controller进行数据保存 Controller如何进行重定向跳转 1.对于前端页面传来日期类型的数据时如何进行处理,有两种方法 1.1在对应的Controller中插入代 ...

  5. 【爬虫数据集】李子柒YouTube频道TOP10热门视频的TOP2000热门评论,共计2W条

    目录 一.背景 二.爬取目标 三.结果展示 四.演示视频 五.附完整数据 一.背景 这段时间,有超多小伙伴找我要YouTube数据,做数据分析.情感分析之类的研究工作,但很多人并不是计算机软件相关专业 ...

  6. 【Oracle】导出全库备份,导入指定的schema并替换现有的表

    需求:开发环境,每天晚上做了全库导出备份.由于误操作,现在要恢复指定的schema下的所有表,操作思路如下: 1.全库导出备份的语句 expdp system/oracle full=y dumpfi ...

  7. Arrays类的常用方法

    Arrays类的常用方法 Array数组的工具类java.util.Arrays Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而不用使用对象来调用 Ar ...

  8. Atm/抢掠计划——题解

    题目描述 样例 6 7 1 2 2 3 3 5 2 4 4 1 2 6 6 5 10 12 8 16 1 5 1 4 4 3 5 6 47 解析 题目明显是最长路,可以用spfa求最长路,但数据范围5 ...

  9. Unity新的MeshData API学习

    在新版本的Unity中提供了MeshDataArray和MeshData等多个API,使Mesh数据操作支持多线程:以更好的支持DOTS. API文档:https://docs.unity3d.com ...

  10. Git 合并冲突

    目录 文章目录 目录 合并冲突 合并分支 合并最近的两次提交 合并冲突 步骤: git status 找到冲突的文件 将冲突去除 将冲突文件重新加入临时区 git add egis/api/v1/ro ...