zoukankan      html  css  js  c++  java
  • 高阶函数之reduce

            let arrone = [1, 2, 3, 4]
            let arrtwo = [{ age: 1 }, { age: 2 }, { age: 3 }]
            let arrthree = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
            let arrfour = [1, 2, 1, 2, 3, 4, 4, 5, 5, 5, 66, 6, 8]
    
            //1:用作单数组数字累加器
            let newonearr = arrone.reduce((a, b) => a + b, 0)  //这里的首次参数c可以不加
            // console.log(newonearr)  0+1+2+3+4
    
            //2:用作数组对象累加
            let c = 0;
            let sum = arrtwo.reduce((a, b) => {
                return a + b.age;  //注意点1是a是上一次的值(所以a不能是a.age  否则会报错),第一次遍历的时候就是c
            }, c)  //注意点2 是这个c是要传入的 是作为第一次的a作为相加  不传会报错
            // console.log(sum) // logs 6
    
            //3:将二维数组转化为一位数组
            let erweizhuanyiwei = arrthree.reduce((a, b) => a.concat(b), [])
            // console.log(erweizhuanyiwei)
    
            //4:计算数组中每个元素出现的次数
            let cishu = arrfour.reduce((a, b) => {
                //第一项是{} 判断b是否在arrfour中  有的话  键值+1 
                if (b in a) {  
                    a[b]++
                }else{ //如果没有这个属性,那么就添加这个键 并赋值1
                    a[b]=1
                }
                return a  //最后把a  return出去
            }, {})
            // console.log(cishu)
  • 相关阅读:
    阿里巴巴FastJSON使用实例
    JSON知识点
    java序列化和反序列化
    JAVA里的VO、BO、PO分别指什么?
    Oracle基础语句练习记录
    maven命令
    maven官方教程
    linux下开启、关闭、重启mysql服务
    linux常用命令记录
    动态网页项目无法启动
  • 原文地址:https://www.cnblogs.com/gsq1998/p/13273833.html
Copyright © 2011-2022 走看看