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