[转]Js遍历数组的方式及其性能对比

Js数组遍历,基本有for、forin、forEach、forof、map等一些方法,下面进行对比分析:

  1>.普通for循环(最简单一种,使用频率高,性能不差,但仍然有优化空间)。  

var arr = ['wukong', 'bajie', 'shaseng' ]
for(var i = 0; i < arr.length; i++) {
   console.log(arr[i])
} 

   2>.优化版for循环(优化后将长度缓存起来,避免重复获取长度,当数据较大时,回报比较明显。性能上基本算最高)。  

var arr = ['wukong', 'bajie', 'shaseng' ];
var len = arr.length;
for(var i = 0; i < len; i++) {
   console.log(arr[i])
} 

   3>.forEach循环(数组自带的forEach,使用频率高,实际性能比普通for循环弱)

var arr = ['wukong', 'bajie', 'shaseng' ];
arr.forEach(element => {
   console.log(element);
} 

  4>.forin循环(效率最低)

var arr = ['wukong', 'bajie', 'shaseng' ];
for(let i in arr){
    console.log(arr[i]) 
})

  5>.map(使用比较广泛,虽然优雅,但是效率其实还不如forEach)

var arr = ['wukong', 'bajie', 'shaseng' ];
arr.map(function(e)) {
   console.log(e);
} 

  6>.forof循环遍历(需要ES6的支持)

var arr = ['wukong', 'bajie', 'shaseng' ];
for(let value of arr){
    console.log(value) 
} 

综合而言,forin最慢,优化后的for循环最快。

posted @ 2017-05-15 10:38  widem  阅读(2320)  评论(1)    收藏  举报