reduce的一些实际应用

 //   reduce实现数组去重
        let a =[1,1,11,2,3,4,3]
        let obj= a.reduce((pre,cur)=>{
            if(!pre.includes(cur)){
                return pre.concat(cur)
            }else{
                return pre
            }
        },[])
        console.log(obj);
        // reduce实现统计出现次数
        let b=['a','a','b','c','c','c','c']
        let obj2=b.reduce((pre,cur)=>{
            if(cur in pre){
                pre[cur]++
            }else{
                pre[cur]=1
            }
            return pre
        },{})
        console.log(obj2);

        // 对象去重
        function arr(aa){
            let obj={};
            for(let i=0;i<aa.length;i++){
                obj[aa[i]]=aa[i]
            }
            return Object.values(obj)
        }
        console.log(arr(b));


        // 利用reduce实现二维数组转换成一维数组
        let arr1=[[1,2],[3,4],[4,5]]
        const myArr=arr1.reduce((pre,cur)=>{
            return pre.concat(cur)
        },[])
        console.log(myArr);

        // 将多维数组转换成一维数组
        let arr2=[1,[1,[2,4,6,4]],[2,3]]
        const newArr=function(arr){
            return arr.reduce((pre,cur)=>{
                return pre.concat(Array.isArray(cur)?newArr(cur):cur)
            },[])
        }
        console.log(newArr(arr2));

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值