JS中arr.forEach()如何跳出循环

blmius
• 阅读 1371

示例

我们都知道for循环里要跳出整个循环是使用break,但在数组中用forEach循环如要退出整个循环呢?使用break会报错,使用return也不能跳出循环。

使用break将会报错:

var arr = [1,2,3,4,5];
var num = 3;
arr.forEach(function(v){
   if(v == num) {
       break;
   }
   console.log(v);
});

JS中arr.forEach()如何跳出循环

使用return也不能跳出整个循环:

var arr = [1,2,3,4,5];
var num = 3;
arr.forEach(function(v){
   if(v == num) {
       return;
   }
   console.log(v);
});

JS中arr.forEach()如何跳出循环

那么在用forEach()遍历数组时要如何才能跳出循环呢?经过查找资料后,我找到了两种方法可以实现跳出循环。

第一种方法:使用try···catch捕获异常实现

try{
        var array = ["first","second","third","fourth"];
        array.forEach(function(item,index){
                if(item == "third"){
                        var a = aaaa;// first second 后就报错,就跳出循环了
                        throw new Error("ending");//报错,就跳出循环
                }else{
                        log(item);
                }
        })
}catch(e){
        if(e.message == "ending"){
                log("结束了") ;
        }else{
                log(e.message);
        }
}

第二种方法:使用arr.some()或者arr.every()替代

some()当内部return true时跳出整个循环:

var arr = [1,2,3,4,5];
var num = 3;
arr.some(function(v){
   if(v == num) {
       return true;
   }
   console.log(v);
});

every()当内部return false时跳出整个循环

var arr = [1,2,3,4,5];
var num = 3;
arr.every(function(v){
   if(v == num) {
       return false;
   }else{
       console.log(v);
       return true;
   }
});

本文转自 https://blog.csdn.net/guxin_duyin/article/details/82980062,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
java认知打卡第三天
if语句、while语句、for语句,switch语句;break整体跳出switch和for语句;continue跳出for循环当前的一条,继续后面的循环。面向对象的设计(OOP),java完全的面向对象进行编码,也就是万物皆对象,以对象的属性和行为进行思考的方式,去理解java的编程思维。OOP将数据放在第一位,操作数据的算法放在了第二位。C语言
Stella981 Stella981
2年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Stella981 Stella981
2年前
Shell编程基础
本文索引:for循环while循环break跳出循环continue结束本次循环exit退出整个脚本for循环语法:for变量名in条件;do...;donefor循环实例循环计算计算1100的和!/bin/b
Wesley13 Wesley13
2年前
Java删除List元素的方法
一、正序删正序删,如果只删除至多1个元素,那只需要在删除后使用break语句跳出循环即可,如果需要删除多个元素,若不注意控制当前列表的size和下一个元素的index,容易报_java.lang.IndexOutOfBoundsException_异常publicstaticvoidremove(List<Stringlis
Wesley13 Wesley13
2年前
C语言二次系统学习3(分支循环、函数)
本次学习,主要针对语句和函数两部分进行学习。分支语句(if,switch)与循环语句(while,for,dowhile)switch语句中,在每个选择之后如果不进行break跳出,会执行下一个case,而且应注意default语句的使用,一般会放在{}代码块的后方dowhile语句中,会首先执行一次循环,再进行判定,所以使用相对较少。whi
Stella981 Stella981
2年前
Linux bash脚本编程学习基础,控制结构
以下为学习整理笔记break命令1.控制条件未满足之前,跳出for、while、until、select循环2.可以额外给出一个额外的数值表明需要跳出的循环层数(不建议这样做,降低程序的可读性)3.默认跳出一层循环continue命令类似c语言中的同名语
小万哥 小万哥
2个月前
C# Break 和 Continue 语句以及数组详解
CBreak它被用于“跳出”switch语句。break语句也可用于跳出循环。以下示例在i等于4时跳出循环:示例:csharpfor(inti0;i<10;i)if(i4)break;Console.WriteLine(i);CContinuecont
小万哥 小万哥
1个月前
Java break、continue 详解与数组深入解析:单维数组和多维数组详细教程
JavaBreak和ContinueJavaBreak:break语句用于跳出循环或switch语句。在循环中使用break语句可以立即终止循环,并继续执行循环后面的代码。在switch语句中使用break语句可以跳出当前case,并继续执行下一个case