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

时间:2022-01-26 19:03:35

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);
}

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

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

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

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

// 5console.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循环的性能最高。