数组遍历的方法

1.for

for循环是最传统的,最简单的遍历方式,也是实用效率最高的。

var arr = [1,2,3,4,5]

for(var i = 0;i<arr.length;i++){
   //代码块
};

优化:
// 缓存数组长度,避免重复计算,
var arr = [1,2,3,4,5];
var len ;
for(var i = 0;i<len;i++){
   //代码块
};

2.forEach

var arr5 = [10,20,30]
var result5 = arr5.forEach((item,index,arr)=>{
    console.log(item)
})
console.log(result5)

没有返回值。

3.for...in

遍历对象除Symbol意外的可枚举数据,包括继承。

var arr = [1,2,3,4,5]
for(var i in arr){
  console.log(i,arr[i])
}  //这里的i是对象属性,也就是数组的下标

4.for...of

不能遍历对象

let arr=[1,2,3];
    for (let item of arr){
        console.log(item)
    }

//遍历对象可以这样搭配Object.keys使用
let obj = {tatle:1,value:2}
for(let item of Object.keys(obj)){
    console.log(person[item])
}

5.map

遍历数组,返回值是修改后的数组

let arr=[1,2,3];
const res = arr.map(item=>{
  return item+1
});
console.log(res) //[2,3,4]
console.log(arr) // [1,2,3]

6.every

对数组中的每一运行给定的函数,如果该函数对每一项都返回true,则该函数返回true;

var arr = [10,30,25,64,18,3,9]
var result = arr.every((item,index,arr)=>{
      return item>3
})
console.log(result)  //false

7.some

对数组中的每一项运行给定的函数,如果该函数有一项返回true,就返回true,所有项返回false才返回false;

var arr2 = [10,20,32,45,36,94,75]
var result2 = arr2.some((item,index,arr)=>{
    return item<10
})
console.log(result2)  //false

8.filter

对数组中的每一运行给定的函数,会返回满足该函数的项组成的数组

var arr3 = [3,6,7,12,20,64,35]
var result3 = arr3.filter((item,index,arr)=>{
    return item > 3
})
console.log(result3)  //[6,7,12,20,64,35]

性能问题可以用测试工具测试,也可自己写测试函数。

//测试函数
function clecTime(fn){
        const start = new Date().getTime()
        if(fn) fn()
        const end = new Date().getTime()
        console.log(`执行耗时:${end-start}ms`)
}

经过工具与手动测试发现,结果基本一致,数组遍历各个方法的速度:传统的for循环最快,for-in最慢

 for > for-of > forEach > map > for-in

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值