js中最详细的数组迭代map,filter,forEach,some,every,findindex,reduce 方法介绍

 

首先这些方法都有一个共同点 语法的结构是一样的,callbackfn(回调函数),里面两个形参:一个value,一个index。

map方法:

      

打印:

 

特点:1.遍历的次数等于数组的长度。

2.本身是有返回值的:return之后会得到映射之后的新数组。

3. 如果不加return就会得到undefined。

filter 方法:

              1.  回调执行次数  ===   数组长度

               2.  本身返回值 :根据条件筛选之后,返回的新数组

               3.  回调函数内部return

                   return true : 满足筛选条件,当前元素放入新数组中

                   return false : 不满足筛选条件,当前元素不放入新数组

举例:

打印:

 

forEach 方法:

          1. 遍历次数  ===   数组长度

          2.无返回值

          3. return 无

说白了就是遍历数组的 和for循环类似

举例:

打印:

 

some 方法:

            1.  回调执行次数  !=   数组长度  (为什么不等于,当返回true的时候,循环就结束了)

            2 . 本身返回值

                true : 有满足条件的元素

                false: 没有满足条件的元素

             3. 回调函数内部return

                true : 循环立即结束。并且some方法本身返回true

                false : 循环继续执行。如果全部遍历结束还是false,则some方法默认返回false

 

           举例:

打印:

 

every方法:

           1. 遍历次数  !=  数组长度

           2. 本身返回值:

                true : 全部满足条件

                false: 有元素不满足条件

            3. 回调函数内部return:和some方法刚好相反

                 true:循环继续。如果全部遍历结束还是true,则every方法默认返回就是true

                false:循环结束。并且every方法本身返回值是false

举例:

打印:

 

 

 findindex 方法:

               1. 遍历次数  !=  数组长度

               2. 本身返回值

                   有元素: 元素下标

                   没有元素: 固定值-1

              3.  回调函数内部return

                return true: 找到了,循环立即结束。并且findIndex方法本身返回当前index

                return false: 没找到,循环继续。如果全部遍历完还是没找到,则得到默认返回值-1

举例:

 

打印:

 

reduce方法:

        1.数组reduce方法 : 给每一个元素执行一次回调

        2.应用场景: 数组求和、求数组最大值

        3.语法:

           let sum = arr.reduce((sum,value,index)=>{  sum+value },0)

                 sum返回值是最后一次sum的结果

        4.注意点: 一定要给初始值,否则reduce遇到空数组就会报错

 

举例:

打印:

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值