reduce的使用方式

一、reduce()的基本使用方式

语法:

reduce((初始值或者结束返回的值,当前值,索引, 当前元素所属的数组对象), 可选,当前元素所属的数组或者对象)

二、reduce实现map方法


        Array.prototype.myMap= function(cb) {
            return this.reduce((pre, cur,index,arr) => pre.concat(cb(cur, index)), [])
        }
        let arr1  = [1, 3,4,5].myMap((item, index) => item + '+'+ index)
        console.log(arr1, 'arr1') //(4) ["1+0", "3+1", "4+2", "5+3"] "arr1"

三、reduce实现累加器


        var arr = [1, 2, 3].reduce((pre,cur,index,arr) => pre + cur)
        console.log(arr) //6

四、reduce数组去重

//
        var arr = [1, 2, 3,2].reduce((pre,cur,index,arr) => pre.includes(cur)? pre:[...pre,cur],[])
        console.log(arr) //[1,2,3]

五、reduce将二维数组转化为一维

//
        var arr = [1, 2,[3,6], 3,2].reduce((pre,cur,index,arr) => pre.concat(cur),[])
        console.log(arr) //[1,2,3]

六、reduce将多维数组转化为一维

//
        let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
        function flatten(data) {
            return data.reduce((pre,cur,index,arr) => pre.concat(Array.isArray(cur) ? flatten(cur) : cur),[])
        }
        console.log(flatten(arr)) //[0, 1, 2, 3, 4, 5, 6, 7]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值