【性能优化】探究各类数组方法遍历性能,以及与Oject检索速率比较

前言:JavaScript中存在许多遍历数组的方法,如for in,forEach,map,filter等,以及ES6新增的for of方法。每个项目经常会出现频繁的遍历数组的场景,且JavaScript的执行是单线程的,所以对于性能的探究,就显得很有必要了。

 

一、遍历数组

①、长度较小数组

let arr = [];
for(let i = 1; i<= 100; i++){
    arr.push(i);
}

console.time('for in');
for (let index in arr) {}
console.timeEnd('for in');

console.time('forEach');
arr.forEach((item)=>{});
console.timeEnd('forEach');

console.time('for of');
for (let item of arr) {}
console.timeEnd('for of');

每次的结果会有些不一样,取十次的平均值

会发现执行速率上并没有太大的区别。但for of跟forEach,还是会相对优于for in循环

②、长度较大数组

let arr = [];
for(let i = 1; i<= 1000000; i++){
    arr.push(i);
}

console.time('for in');
for (let index in arr) {}
console.timeEnd('for in');

console.time('forEach');
arr.forEach((item)=>{});
console.timeEnd('forEach');

console.time('for of');
for (let item of arr) {}
console.timeEnd('for of');

同样,取十次的平均值</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值