数组遍历的方法总结

最近公司项目上线了,自己也有些时间去整理和学习今天就写一下最近对数组遍历方法的一些总结

map

语法:arr.map(function (v,i,a) {条件});

作用:遍历数组,根据条件+-x / 等遍历原来的数组得到一个新的数组

参数:item 数组的每一项,index 索引,下标,arr数组自身(基本不用)

返回值:一个新的数组

注意点原数组一般不会改变

forEach

语法:arr.forEach();

作用:相当于for循环遍历,将数组中的每个元素一次交给回调函数处理

参数:跟map一致

返回值:没有返回值

注意点:当数组中元素是值类型,forEach绝对不会改变数组;当是引用类型,则可以改变数组arr.forEach(p = p.age = p.age + 1)(不允许改变值,复杂数据类型地址不可改变)

some (中文:有些,其实可以看出作用,有些符合条件返回true)

语法:arr.some();

作用:判断条件 遍历每一项,数组中有一项符合条件就返回true,否则返回false

参数:跟map一致

返回值:布尔类型

every (中文:每一项符合就返回true)

语法:arr.every();

作用:遍历数组的每一项,全部都满足条件就返回true,否则返回false

参数:跟map一致

返回值;boolean布尔类型

filter

语法:arr.filter();

作用:遍历数组arr,返回满足条件的所有值,放到一个新的数组中

参数:跟map一致

返回值:一个新的数组,尽量拿个变量接收

find(中文:发现,发现就返回)

语法:arr.find();

作用:遍历数组arr,找到满足条件的值,就停止

参数:跟map一致

返回值:返回满足条件的这一项内容

findIndex

语法:arr.findIndex();

作用:遍历数组arr,找到满足条件的值,就停止返回数组的那一项数据

参数:跟map一致

返回值:满足条件的那一项的下标

说明:

相信通过上面的讲解大家都有一定的了解了,上面我用的最多的就是filter其次是forEach、map,刚开始我对forEach和map的区别不太了解,那我就说一下两者的区别,区别:、forEach没有返回值仅仅是遍历数组,map有返回值;相同点:forEach当数组里的内容对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,是不能被改变的。但对于复合类型的数据(主要是对象和数组),元素指向的是内存地址,就是是一个指向实际数据的指针,forEach保证这个指针是固定的(即总是指向一个固定的地址),至于它指向的数据结构的内容是否改变,他不管,所以forEach里面保存的是简单数据类型,原数组是不可被改变,如果是符合类型,符合类型的指向的地址不可变,但是内容是可变的,对于map也一样!

补充:

今天看到ES6对数组还有一种遍历方法for……of

for……of可以代替forEach,区别当然有很多,最主要的是forEach无法中途跳出循环,break命令、continue命令或return命令都不能奏效,for……of可以,当然for……of的用法有很多,以后再去讨论。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值