es5新增数组函数:过滤和汇总

5.5.5 filter

过滤:

【1】功能:复制出数组中符合要求的个别元素,放入新数组中返回

【2】如何使用:

 var 新数组=数组.filter(
    function(当前元素值, 当前下标i, 当前数组){
      return 判断当前元素值是否符合要求
    }
   )

【3】原理

​ i:先创建一个新的空数组等待

​ ii:filter内部自带for循环,会自动遍历原数组中给的每个元素

​ iii:每遍历一个元素就会自动调用一次回调函数

​ iv:每次调用回调函数时都会自动传入三个参数值

​ ①当前元素值

​ ②当前下标i

​ ③当前数组对象

​ v:在回调函数内,判断当前元素值是否符合要求,并返回判断结果

​ ①如果当前元素的判断结果为true,则表示当前元素符合条件,则filter会将当前元素值使用push方法追加到新数组中保存

​ ②如果当前元素的判断结果为false,则表示当前元素不符合条件,filter什么都不做,继续遍历下一个元素

【4】示例:过滤出数组中的偶数

 // filter函数  过滤
        var arr=[1,2,3,4,5];
        var arr2=arr.filter(
            // 拿出数组中的偶数,放入新数组中,原数组保持不变
            function(elem,i,arr){
                return elem%2===0;
            }
        )
        console.log(arr);
        console.log(arr2);
5.5.6 reduce

汇总 本次以数组内元素求和为例

【1】功能:对数组中所有元素进行统计,并返回统计结果

【2】如何使用:有2个参数

 var 结果=数组.reduce(
    function(当前元素之前的临时汇总值, 当前元素值, 当前下标i, 当前数组){
	  return 当前元素之前的临时汇总值+当前元素值
    },
    起始值
  )

【3】原理

​ i:内部创建一个变量,保存汇总的起始值——起始值

​ ii:reduce内自带for循环,自动遍历原数组中的每个元素

​ iii:每遍历一个元素就会自动调用一次回调函数

​ iv:每次调用回调函数都会自动传入4个值:

​ ①当前对象之前的临时汇总值

​ ②当前元素值

​ ③当前下标i

​ ④当前数组对象

​ v:在回调函数中,将临时汇总值与当前元素值相加,计算出新的汇总值,再返回给reduce

【4】示例:对数组中元素求和

 // reduce函数用于汇总
        // 以数组求和为例
        var arr=[1,2,3,4,5];
        var res=arr.reduce(
                    //  elem前的汇总值   当前元素   当前下标    当前数组
            function(       pre,           elem,       i,       arr){
                // 会先将起始值赋给pre,pre与elem相加后,将结果返回给reduce函数,reduce函数会将其再返回给起始值,为下一次相加做准备
                return pre+elem;
            },0    //起始值
        )
        console.log(arr);
        console.log(res);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值