js中几种循环方式和性能分析

1.普通for循环

for (let i = 0; i < arr.length; i++) {
    let obj = arr[i];
    
}

优化:

for (let i = 0,len = arr.length-1; i < len; i++) {
    let obj = arr[i];

}

2.foreach 数组方法

arr.forEach(function(e){

});

数组自带的方法,使用起来比普通for循环性能弱一点

3.for in 遍历对象

for(let j in arr) {

}

大家可能用这个用的比较多(ps:以前我经常用),不过实际测试这个是效率最低的 ,这个底层他会去遍历原型上的所有方法和属性,消耗的资源可想而知,虽然功能比较强大,大家用起来比较方便,具体用不用自己衡量

4.map遍历(es6)

arr.map(function(n){

});

数组的方法,比不上foreach效率

5.for of(es6)

for(let value of arr) {

}

这种方式是es6里面用到的,性能要好于for in,但仍然比不上普通for循环

总结:

for in 是性能效率最低的 如果不是必要,不建议使用,平时大多数情况还是使用优化版的普通for循环好一点,如果是从旧数组中创建新数组那么就用map 吧

经验分享 程序员 微信小程序 职场和发展