我们都知道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);
});

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

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

那么在用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

[转] JS中arr.forEach()如何跳出循环的更多相关文章

  1. JS中的forEach、$.each、map方法推荐

    下面小编就为大家带来一篇JS中的forEach.$.each.map方法推荐.小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 orEach是ECMA5中Array新方法中最 ...

  2. js中的forEach和map的区别

    我们先来看两者之间的相同之处 var arr = ['a','b','c','d']; arr.forEach(function(item,index,arr){ //item表示数组中的每一项,in ...

  3. js中跳出forEach循环

    缘由:近期在项目中使用lodash.js中的_.foreach方法处理数据,需要在满足条件时结束循环并不执行后面的js代码. 因为foreach中默认没有break方法.在尝试中使用了return f ...

  4. JS中的forEach、$.each、map方法

    forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环.例如下面这个例子: [1, 2 ,3, 4].forEach(alert); 等同于下面这个for循环 var array ...

  5. js中的forEach

    chrome和firefox支持数组的forEach,但不支持对象的forEach,IE啥都不支持 jquery中的$.each(ArrayOrObject,function)既可以遍历数组又可以遍历 ...

  6. js中arr.sort的用法

    sort(sortfunction)为JS的数组对象(Array)的一个方法,提供排序功能 参数 sortFunction 为可选项,是用来确定排序原则的js函数, 这个函数有两个参数,分别代表每次排 ...

  7. JS中使用for-each遍历数组

    1 let array = [1, 3, 6, 8, 9, 0, 5]; 2 /* 3 index是数组索引 4 value代表数组的值 5 arr是指整个数组 6 */ 7 array.forEac ...

  8. JS 中的foreach和For in比较

    使用方式举例如下: <script type="text/javascript"> var jsonranklist=[{"name":" ...

  9. js中的forEach/map方法

    // forEach方法 var data = [{ name: "程咬金", sex: "1", age: 26 }, { name: "程才&qu ...

随机推荐

  1. APS系统生产流转方式和批量算法研究

    01.前言 在经济领域,生产型企业是经济的根基,有了生产型企业生产出的各种产品,才有物流.网上购物和金融融资等活动.对于生产型企业,其制造能力是其核心竞争力.如何提升制造能力一直是生产型企业面临的课题 ...

  2. go-torch安装和使用

    go-torch安装 1.安装FlameGraph脚本 git clone https://github.com/brendangregg/FlameGraph.git cp FlameGraph/f ...

  3. 第五篇:Python函数基础篇

    本篇介绍什么是函数.函数的特性.函数的定义.函数的调用.以及函数的参数.以及关于全局变量和局部变量的使用等等. 一.什么是函数: 函数是最基本的一种代码抽象方式,为了实现某种特定的功能而组织的带名字的 ...

  4. mysql_innodb存储引擎的优化

    采用innodb作为存储引擎时的优化 innodb_buffer_pool_size 如果用 Innodb,那么这是一个重要变量.相对于 MyISAM 来说,Innodb对于 buffer size ...

  5. JS高阶---继承模式(原型链继承)

    [前言] 之前已经介绍了对象创建的五种模式,下面看下继承模式 本节介绍下<原型链继承> [主体] 验证如下: 关键点: .

  6. Linux终端执行shell脚本,提示权限不够

    在学习dubbo过程中,上传自己写的脚本,执行的时候提示“权限不够”,从网上了解到是因为没有为脚本赋权限 解决方法是使用chmod命令为shell脚本赋予权限 chmod 777 ./service- ...

  7. Python之flask框架2

    Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务.本文参考自Flask官方文档,大部分代码引用自官方文档. 安装flask 首先我们来安装F ...

  8. day12_7.12递归函数与算法

    一.递归函数 递归函数是在函数的调用阶段直接或间接的调用自己. 于是下面就是一个简单的递归函数: def func(): print('我调我自己') func() func() 然而结果会报错,因为 ...

  9. CF261E Maxim and Calculator

    CF261E Maxim and Calculator 洛谷评测传送门 题目描述 Maxim has got a calculator. The calculator has two integer ...

  10. LG1640 「SCOI2010」连续攻击游戏 二分图最大匹配

    问题描述 LG1640 题解 一开始以为是把\((a,b)\)作为左右部点,发现\(n \le 1000000\),建图是\(O(n^2)\)的,会爆掉 属性值向\(i\)建边. \(\mathrm{ ...