首页 > 编程知识 正文

遍历数组的三种方法,foreach遍历数组详解

时间:2023-05-04 14:29:04 阅读:17096 作者:2535

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循环

第四个:福雷循环

代码为以下:

arr.foreach (功能(item,index ) {

//索引怎么样

//item可以是对象

//item.name

);

简要说明:

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

第五种:foreach变种

代码为以下:

array.prototype.foreach.call (arr,function ) El ) )。

);

简要说明:

由于foreach是Array类型的附带品种,不能直接用于非这种类型的品种(例如NodeList ),因此出现了这种变种。 使用此变种,可以使类似的数组具有foreach功能。

实际性能比普通的foreach弱

第六类:福克斯循环

代码为以下:

for(jinarr ) {

//j表示索引

}

Paste_Image.png

简要说明:

这个循环很多人都喜欢用,但实际上,经过分析测试,在很多循环扫描方式中

其效率最低

第七类:map遍历

代码为以下:

arr.map (功能(item ) {

);

Paste_Image.png

简要说明:

这种方式也比较广泛,用于优雅,但实际效率比不上foreach

第8类:forof扫描(需要ES6支持) ) ) ) ) ) ) ) )。

代码为以下:

for(letvalueofarr ) {

//打印的是值

);

Paste_Image.png

简要说明:

这种方式在es6中使用,性能比forin好,但仍然比不上普通的for循环

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。