JavaScript foreach 方法跳出循环

JavaScript foreach 方法跳出循环通常 在 for 循环中跳出循环可以用 break 或者 continue 来跳出循环 break 跳出循环 continue 跳过当次循环 而有时候需要在 foreach 中跳出循环 该怎么做呢 forEach 方法用于调用数组的每个元素 并将元素传递给回调函数 对于空数组不会执行回调函数 回调函数的参数 function currentValue index arr currentValue 必需 当前元素 index 可选 当前元素的索引值 arr

通常,在 for循环中跳出循环可以用 break或者 continue 来跳出循环。
break:跳出循环;
continue:跳过当次循环。

而有时候需要在 foreach 中跳出循环,该怎么做呢?

在 forEach 中使用return:

let arr = [1,2,3,4,5,6,7,8,9]; let num = 6 arr.forEach((item)=>{ 
    if(item == num) { 
    return; } console.log('item',item); }) console.log(123) 

在 forEach 中使用break:

let arr = [1,2,3,4,5,6,7,8,9]; let num = 6 arr.forEach((item)=>{ 
    if(item == num) { 
    break; } console.log('item',item); }) console.log(123) 

在 forEach 中使用continue:

let arr = [1,2,3,4,5,6,7,8,9]; let num = 6 arr.forEach((item)=>{ 
    if(item == num) { 
    continue; } console.log('item',item); }) console.log(123) 

上面的例子可以看到,foreach不能使用breakcontinue这两个关键字。

因为 forEach 本身无法跳出循环,必须遍历所有的数据才能结束,它传入的是一个回调函数,因此形成了一个作用域,它内部所定义的变量不会像for循环一样污染全局变量。

解决方法

forEach方法跳出循环 —— 通过 try catch 抛出异常的方式跳出循环

let arr = [1,2,3,4,5,6,7,8,9]; let num = 6 try { 
    arr.forEach((item, i)=> { 
    console.log('item',item) if (item === num) { 
    throw new Error('LoopInterrupt'); //满足条件,跳出循环 } }) } catch (e) { 
    if (e.message !== "LoopInterrupt") throw e } console.log(123) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231459.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 国内不错的激活成功教程软件网站!

    国内不错的激活成功教程软件网站!无忧软件网-[url]http://www.51soft.com/[/url]精品软件秀-http://www.ohsoft.com/163软件园-http://www.soft163.com/中华激活成功教程联盟-http://www.softsdown.com/软件万花筒-http://www.superdown.com/番外地工作室-http://fwd.y…

    2022年6月21日
    43
  • C、C++基础知识之 六 CString::ReverseFind()和CString::Find()区别「建议收藏」

    C、C++基础知识之 六 CString::ReverseFind()和CString::Find()区别「建议收藏」CString::ReverseFindintReverseFind(TCHARch)const;返回值:参数:    ch要搜索的字符。说明:此成员函数在此CString对象中搜索与一个子串匹配的最后一个字符。此函数类似于运行时函数strrchr。“最后一个字符”是指从左往右的最后一

    2022年6月23日
    32
  • 去噪自动编码器

    去噪自动编码器降噪自动编码器是一种用于图像去噪无监督的反馈神经网络原理如下图所示训练代码如下fromkeras.layersimportInput,Conv2D,MaxPooling2D,UpSampling2D,ZeroPadding2Dfromkeras.modelsimportModelfromkeras.callbacksimportTensorBoardfromkeras.datasetsimportmnistimportnumpyasnp(x_trai

    2022年6月1日
    38
  • cuda安装步骤_cuda和cudnn是什么

    cuda安装步骤_cuda和cudnn是什么cuda9.0+cudnn7.0安装教程 1、下载cuda9.0下载链接:https://developer.nvidia.com/cuda-toolkit-archive 2、安装cuda安装cuda时,第一次会让设置临时解压目录,第二次会让设置安装目录;临时解压路径,建议默认即可,也可以自定义。安装结束后,临时解压文件夹会自动删除;安装目录,建议默认…

    2022年4月19日
    98
  • vue开发移动端app苹果手机的bug脱坑

    vue开发移动端app苹果手机的bug脱坑vue 开发移动端 app 网页打包苹果 app 的坑总结列表设置 overflow auto 后 滚动效果不流畅的问题 可以在列表设置 flex 1 overflow y auto webkit overflow scrolling touch 在 iOS 中出现滚动卡顿问题上诉解决方法还会出现一个问题 就是会导致在列表中如果有弹窗 position fixed 会导致弹窗被覆盖或者覆盖不完全的问题 为此需要将弹窗放在列表外 下面为代码例子

    2025年10月30日
    5
  • 阿里云Redis开发规范

    阿里云Redis开发规范

    2021年7月4日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号