Array之遍历

总结一下常见几种arr遍历方式

for循环

1
2
3
4
var arrLength = arr.length;
for(var i = 0; i < arrLength; i++){
//do something what u like
}

最初始用的一种遍历方式,因为每次进行for循环都需要读一次arr.length,因此先声明arr.length可以优化一下性能。

for-in

1
2
3
for(var i in arr){
//do something
}

可遍历对象也可遍历数组,不推荐用for-in来循环一个数组,因为,不像对象,数组的index跟普通的对象属性不一样,是重要的数值序列指标。
总之,for–in是用来循环带有字符串key的对象的方法。

for-of

1
2
3
for(var i of arr){
//do something
}

可遍历对象可遍历数组也可遍历字符串,用法很多。

forEach()

1
2
3
arr.forEach((item, index, arr) => {
//do something
})

Array.ForEach is about 95% slower than for() in for each for Arrays in JavaScript. forEach的遍历速度并不快。还有一部分原因在IE8并不支持
可参考文章

map()

1
2
3
arr.map((item, index) => {
//do something
})

forEach与map和for是没必要比较的,forEach和map只是封装好的方法而已,甚至可以自己封装一个forEach或者map。
这里效率最高还属for循环。