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

#解决方法:

1.使用 try...catch捕获异常实现:

     try {var array = [1, 2, 3, 4, 5];array.forEach((item, index) => {if (item == 3) {//执行完1 2 之后就报错,就跳出循环了throw new Error("ending"); //报错,就跳出循环} else {console.log(item);}})} catch (e) {if (e.message == "ending") {console.log("结束了");} else {console.log(e.message);}};

2.使用arr.some() 或者 arr.every() 替代:

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

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

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

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

JS如何终止forEach循环相关推荐

  1. js中终止forEach循环的方法

    正常终止for循环我们可以使用break关键字来实现,而在forEach循环中是不能使用break和continue这两个关键字的,为什么呢? 因为这两个关键字要在循环中使用,而forEach中所执行 ...

  2. js中 如何终止foreach循环?

    forEach专门用来循环数组,可以直接取到元素,同时也可以取到index值 存在局限性,不能continue跳过或者break终止循环,没有返回值,不能return 终止foreach循环 :运用抛 ...

  3. 如何终止forEach循环

    如何终止forEach循环 由于forEach无法在所有元素都传递给调用函数之前终止遍历,所以说它没有像for循环中使用的break语句,如果要提前终止的话就必须把forEach方法放在一个try/c ...

  4. js 终止 forEach 循环

    try{var arr = ["dog","cat","monkey"];// 执行到第3次,结束循环arr.forEach((name, ...

  5. jsfor循环终止_js 终止 forEach 循环

    wp8 入门到精通 MultiMsgPrompt List arraymsg = new List(); List ArrayNotifyInfo ... 转:Top 10 Algorithms fo ...

  6. js如何跳出foreach循环

    本人在做购物车练习时,想用foreach遍历商品列表,如果商品列表都选中了,则勾选 全选  按钮,否则遍历时如果有某一项没有勾选则应该将 全选 按钮标志位设为false,然后跳出循环. 问题来了,我在 ...

  7. php中的foreach和js中的foreach的用法和区别

    PHP中的foreach循环: 主要用于遍历数组 例如: (1)// $colors=array("red","yellow","blue" ...

  8. JS中如何跳出.forEach循环

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

  9. js 跳出 forEach 循环

    使用 forEach 的时候,是不能通过 return 来跳出循环的(只可以终止 return 语句后面代码的执行,并不会终止整个循环),比如下面的例子

最新文章

  1. [Tool]靜態程式碼分析-FxCop
  2. matlab信道均衡,使用LMS算法做信道均衡时,更换信道传递函数效果很差
  3. poj-1979 dfs
  4. 解决Pycharm中import时无法识别自己写的程序(转载)
  5. linux timespec 链接库,Linux内核 timespec_sub()
  6. 2 万字长文盘点五种负载均衡策略
  7. Eclipse中 搭建 Spring+SpringMVC+Mybatis整合(下)
  8. UVA103 dp基础题,DAG模型
  9. 读书笔记--精通CSS高级Web标准解决方案(一)---CSS基础
  10. 人工智能目前有哪些突破?
  11. 【java】java Jvm内存结构
  12. Android调试办法之adb指令解锁手机锁屏
  13. 如何解决CF安全数据上报异常 16-2
  14. 工信部官宣:5G商用牌照即将发放!
  15. Google CFO 的辞职信(引用)
  16. SSM高校疫情防控出入信息管理系统设计与实现.rar(论文+源码)
  17. 题目:L2-029 特立独行的幸福 (25 分)
  18. 你今天好帅用计算机,华师表白墙 | 计算机系最帅的男孩子,我喜欢你!
  19. 一个使用 selenium 模块爬取(Twitter、New York Times)网站的可配置爬虫代码
  20. MATLAB中字符串数组的文件输出

热门文章

  1. 叮咚买菜VS每日优鲜:同亏不同命
  2. 我,32岁,小米公司程序员,揭 开北京“码农”的真实收入
  3. npm安装electron报RequestError: socket hang up错误解决方法
  4. iPhone13充电宝哪个牌子好?iPhone13无线充电宝推荐
  5. VS2010常用插件介绍之Javascript插件(一)
  6. python3d旋转相册_3D立体相册,一个可旋转的立体相册
  7. 2021亚太杯A|B|C题全网最全解题思路+数据分享
  8. Python实现多电阻并联快捷计算
  9. oracle 11g安装过程中问题:移动bin\oralbac11.dll 到bin\oralbac11.dll.dbl出错
  10. 【学习mysql】ubuntu20.04下彻底删除mysql8.0