html遍历数组,JS数组遍历的几种方式

html遍历数组,JS数组遍历的几种方式JS 数组遍历 基本就是 for forin foreach forof map 等等一些方法 以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比第一种 普通 for 循环代码如下 for j 0 j

JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比

第一种:普通for循环

代码如下:

for(j = 0; j < arr.length; j++) {

}

简要说明:

最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间

第二种:优化版for循环

代码如下:

for(j = 0,len=arr.length; j < len; j++) {

}

简要说明:

使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。

这种方法基本上是所有循环遍历方法中性能最高的一种

第三种:弱化版for循环

代码如下:

for(j = 0; arr[j]!=null; j++) {

}

简要说明:

这种方法其实严格上也属于for循环,只不过是没有使用length判断,而使用变量本身判断

实际上,这种方法的性能要远远小于普通for循环

第四种:foreach循环

代码如下:

arr.forEach(function(item,index){

//index可要可不要

//item可以是对象

//item.name

});

简要说明:

数组自带的foreach循环,使用频率较高,实际上性能比普通for循环弱

第五种:foreach变种

代码如下:

Array.prototype.forEach.call(arr,function(el){

});

简要说明:

由于foreach是Array型自带的,对于一些非这种类型的,无法直接使用(如NodeList),所以才有了这个变种,使用这个变种可以让类似的数组拥有foreach功能。

实际性能要比普通foreach弱

第六种:forin循环

代码如下:

for(j in arr) {

//j表示的是index

}

eb70bc41a1c2

Paste_Image.png

简要说明:

这个循环很多人爱用,但实际上,经分析测试,在众多的循环遍历方式中

它的效率是最低的

第七种:map遍历

代码如下:

arr.map(function(item){

});

eb70bc41a1c2

Paste_Image.png

简要说明:

这种方式也是用的比较广泛的,虽然用起来比较优雅,但实际效率还比不上foreach

第八种:forof遍历(需要ES6支持)

代码如下:

for(let value of arr) {

//打印出来的是值

});

eb70bc41a1c2

Paste_Image.png

简要说明:

这种方式是es6里面用到的,性能要好于forin,但仍然比不上普通for循环

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月26日 下午8:33
下一篇 2026年3月26日 下午8:34


相关推荐

  • pycharm英语怎么读_PyCharm常用设置

    pycharm英语怎么读_PyCharm常用设置使用的是 PyCharm2018 3 4 代码的自动补全在 PyCharm 中找到 PowerSaveMod 选项 将前面的对勾去掉 在左上角 File 的展开栏的倒数第二行在 PyCharm 的最右下角有个 的样子 在 旁边 单击点开就可看到 PowerSaveMod 选项在这个 Currentinspe 中可以设置 Highlighting 即检查代码严格程度 过多的不

    2026年3月16日
    2
  • pip 卸载包_linux卸载python3

    pip 卸载包_linux卸载python3使用pip卸载模块pipuninstallbagname

    2022年10月10日
    4
  • IDEA反编译出整个jar包源码

    IDEA反编译出整个jar包源码一 保证您的 idea 配置有如下插件 JavaBytecode File gt Settings gt Plugins 在搜索框内搜出后勾选 并应用 二 在您需要编译的 jar 包的目录下 打开命令行界面 输入以下命令 E lib gt java cp D ideaIU 2017 1 1 plugins java decompiler lib java deco

    2026年3月18日
    3
  • redis分布式锁的应用场景有哪些_redis setnx 分布式锁

    redis分布式锁的应用场景有哪些_redis setnx 分布式锁“分布式锁”是用来解决分布式应用中“并发冲突”的一种常用手段,实现方式一般有基于zookeeper及基于redis二种。具体到业务场景中,我们要考虑二种情况:一、抢不到锁的请求,允许丢弃(即:忽略)比如:一些不是很重要的场景,比如“监控数据持续上报”,某一篇文章的“已读/未读”标识位更新,对于同一个id,如果并发的请求同时到达,只要有一个请求处理成功,就算成功。用活动图表示如下:二、并发请求,不论哪一条都必须要处理的场景(即:不允许丢数据)比如:一个订单,客户正在前台修改地址,管理员在后台同时修

    2025年10月8日
    5
  • 融合计费的实现

    融合计费的实现融合计费帐务系统的实现下面将对融合计费帐务系统的其他几个方面进行简要的阐述 融合批价过去 运营商实现融合帐单的方式是针对每一种业务均有相应的专业计费 表面上看 这种针对每种业务均部署一套批价系统的方法 在逻辑上很清晰 新增业务只需新部署一套专业计费批价系统即可 而且对每种业务能够针对其业务特点进行开发 效率较高 在运营商开展业务的初期 上述方式是可行的 较为符合实际

    2026年3月19日
    2
  • Java基础(面向对象三大特性)

    Java基础(面向对象三大特性)目标:Java基础(面向对象三大特性)文章目录前言Java的三大特性?总结前言JAVA的地位Java具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中优秀的编程语言。提示:以下是本篇文章正文内容。Java的三大特性?1.封装性面向对象编程的核心思想之一是将数据的操作封装在一起。通过抽象,即从具体的实例中抽取出共同的性质形成一班的概念,例如类的概念。例如把生活中的一些行为称作是它们具有的方法,而属性是它们的状态描述,仅仅用属性或行为不能很好地描述它们。人们经常谈.

    2022年7月16日
    19

发表回复

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

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