Javascript中遍历数组方法的性能对比

Javascript中常见的遍历数组的方法

1.for循环

for(var i = 0; i < arr.length; i++) {
    // do something.        
}

2.for循环的改进版

for(var i = 0, len = arr.length; i < len; i++) {
    // do something.
}

3.数组的forEach方法

arr.forEach(function() {
    // do something.
});

4.数组的map方法

arr.map(function() {
    // do something.
});

5.for(var ... in ... )

for(var elem in arr) {
    // do something.    
}

 

构建检测性能的代码

var arr = new Array();
for(var i = 0; i < 1000000; i++) {
	arr.push(i);
}

// 1 console.time();
for(var i = 0; i < arr.length; i++) {
  // do something.
} console.timeEnd();

// 2 console.time(); for(var i = 0, len = arr.length; i < len; i++) {   // do something. } console.timeEnd();

// 3 console.time(); arr.forEach(function() {
  // do something.
}); console.timeEnd();

// 4 console.time(); arr.map(function() {
  // do something.
}); console.timeEnd();

// 5 console.time(); for(var elem in arr) {
  // do something.
} console.timeEnd();

 

测试环境

 Windows10 Google Chrome 版本 60.0.3112.101(正式版本)

 

结果(只选取一组比较有代表性的)

default: 7.076904296875ms
default: 5.582275390625ms
default: 26.144775390625ms
default: 577.5009765625ms
default: 204.117919921875ms

 

结论

使用for循环的性能最高。

 

posted @ 2017-08-23 20:34  水果味的C  阅读(228)  评论(0编辑  收藏  举报