首页 > 编程知识 正文

数组的遍历是什么意思,js数组比较是否相等

时间:2023-05-06 17:01:20 阅读:17062 作者:1944

JS序列遍历时间比较

bb不多。 先说结论,常规for循环优化版倒序最快,for…in最慢,那是前者的400倍左右。

首先,介绍一般的遍历排列方式普通的for环路普通的for环路优化版普通的for环路优化版逆序普通的for环路。 数组长度foreachfor…infor…of准备数组直到鼠标let arr=[]; for(letI=0; i 10000000; I () { arr[i]=i; }

定义两个接收时间的变量let t1; //开始时间let t2; //结束时间接下来是测试(浏览器分别是火狐和谷歌、火狐在前; 分别测定5次)

(白色火狐,深色谷歌)

1 .常规for循环{ t1=new Date ().getTime ); for(letI=0; i arr.length; I ) { } t2=new Date ().getTime ); console.log (常规for: ) (T2-T1 ); }

2 .常规for循环优化版{ t1=new Date ().getTime ); for(letI=0,len=arr.length; i len; I ) { } t2=new Date ().getTime ); console.log (改进for: ) (T2-T1 ); }

3 .常规for循环优化版逆序{ t1=new Date ().getTime ); let len; for(letlen=ARR.Length; len 0; len----{}T2=newdate ().getTime ); console.log (常规for循环优化版逆序: ) (T2-T1 ) ms ); }

4 .数组长度{ t1=new Date ().getTime ); for(letI=0; arr[i]!=null; I ) { } t2=new Date ().getTime ); 到console.log (数组长度: ) (T2-T1 ) (ms ) )的常规for循环; }

5.foreach { t1=new Date ().getTime ); ARR.Foreach((element,index )={ } ); t2=new Date ().getTime ); 控制台. log (foreach : ) (T2-T1 ) (ms ); }

6.for…in { t1=new Date ().getTime ); for(letIinarr ) ) { } t2=new Date ).getTime ); 控制台. log (forin : ) (T2-T1 ) (ms ); }

火狐请注意,此测试的数组长度为其他测试长度(10000000 )的1%

7.for…of { t1=new Date ().getTime ); for(letIofarr(//I位数组对象) } t2=new Date ).getTime ); console.log(forof: ) (T2-T1 ) (ms ); }

至此,所有测试都完成了。 请注意,forin的火狐测试数组的长度是其他测试的1% (因为火狐太慢了)。

提示:测试的数组长度为10000000,但在测试ForinForinFouther浏览器时更改为1%。 因为很慢,所以下表的时间乘以100

火狐时间(多次平均) ms谷歌时间(多次平均) ms常规for循环1012常规for循环优化版9.212.2常规for循环优化版逆序8.210.4for序列长度23.69.4 foreach 37.8121.8 for

常规for环路优化版逆序综合最快

for(letlen=ARR.Length; len 0; len-- } { } for…in http://www.Sina.com /

for(letIinarr(//I为索引) )。

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