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