js中Array.forEach跳出循环的方法实例

 更新时间:2021年09月01日 10:02:07   作者:陌生的L君  
相信大家都知道forEach适用于只是进行集合或数组遍历,for则在较复杂的循环中效率更高,下面这篇文章主要给大家介绍了关于js中Array.forEach跳出循环的相关资料,需要的朋友可以参考下

forEach()方法

语法:array.forEach(callback(currentvalue,index,arr) ,thisValue)

其中

callback为数组中每个元素执行的函数,该函数可接受1-3个参数:

  • currentvalue参数表示数组的当前元素项,必须的参数
  • index参数表示的当前元素下标,可选参数
  • arr参数表示当前元素所属的数组,可选参数

thisValue表示执行回调函数callback()时的this指向。可选参数。当不写时,则默认是指向window全局

示例

    var arr = [1, 3, 5, 13, 2];
    var res = arr.forEach(function(item,index) {
        console.log(`数组第${index+1}个元素是${item}`);
    })
    console.log(res);//forEach的返回值为undefined,

运行结果:

js中 Array.forEach如何跳出循环

forEach是不能通过break或者return跳出循环的,一般跳出循环的方式为抛出异常:

 try {
   let array = [1, 2, 3, 4]
   array.forEach((item, index) => {
     if (item === 3) {
       throw new Error('end')//报错,就跳出循环
     } else {
       console.log(item)
     }
   })
 } catch (e) {
 }

这种写法反而很麻烦。

解决方式:

1.使用every替代:

let array = [1, 2, 3, 4]
array.every((item, index) => {
  if (item === 3) {
    return true
  } else {
    console.log(item)
  }
})

2.自己写一个😁

//可跳出循环的数组遍历
Array.prototype.loop = function(cbk) {
  //判断当前数组是否为空
  if (this?.length) {
    for (let i = 0; i < this.length; i++) {
      let stop = cbk(this[i], i, this)
      //判断是否停止循环
      if (stop) {
        break
      }
    }
  }
}


let array = [1, 2, 3, 4]
array.loop ((item, index) => {
  if (item === 3) {
    return true
  } else {
    console.log(item)
  }
})

总结

到此这篇关于js中Array.forEach跳出循环的文章就介绍到这了,更多相关js中Array.forEach跳出循环内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript实现的一个计算数字步数的算法分享

    JavaScript实现的一个计算数字步数的算法分享

    这篇文章主要介绍了JavaScript实现的一个计算数字步数的算法分享,本文先是讲解了算法描述与实现原理,然后给出实现代码,需要的朋友可以参考下
    2014-12-12
  • 用js实现简单的tab选项卡

    用js实现简单的tab选项卡

    这篇文章主要为大家详细介绍了用js实现简单的tab选项卡,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 使用JavaScript实现链表的数据结构的代码

    使用JavaScript实现链表的数据结构的代码

    链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer) 。下面我们用 JavaScript 代码对链表的数据结构进行实现
    2017-08-08
  • 用js的document.write输出的广告无阻塞加载的方法

    用js的document.write输出的广告无阻塞加载的方法

    这篇文章主要介绍了用js的document.write输出的广告无阻塞加载的方法,需要的朋友可以参考下
    2014-06-06
  • 游戏人文件夹程序 ver 4.03

    游戏人文件夹程序 ver 4.03

    游戏人文件夹程序 ver 4.03...
    2006-07-07
  • electron如何使用typescript

    electron如何使用typescript

    引入 TypeScript 到 Electron 项目可以帮助你捕捉错误并在编写代码时提供更好的自动完成和文档,这篇文章主要介绍了electron使用typescript的步骤,需要的朋友可以参考下
    2024-04-04
  • JavaScript的eval JSON object问题

    JavaScript的eval JSON object问题

    在做AJAX应用开发的时候,我们通常喜欢把服务器端返回的JSON格式字符串在客户端的回调函数中把它作为JavaScript代码执行并用一个变量保存起来,以方便使用返回的数据。
    2009-11-11
  • JavaScript实现表单全选或反选效果

    JavaScript实现表单全选或反选效果

    这篇文章主要为大家详细介绍了JavaScript实现表单全选或反选效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • xml文档转换工具,附图表例子(hta)

    xml文档转换工具,附图表例子(hta)

    xml文档转换程序的一个小应用,几行代码生成饼图。源代码打包提供。
    2010-11-11
  • 深入理解JavaScript中的尾调用(Tail Call)

    深入理解JavaScript中的尾调用(Tail Call)

    尾调用(Tail Call)是函数式编程的一个重要概念,下面这篇文章主要给大家深入的介绍了关于JavaScript中尾调用的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。
    2017-02-02

最新评论