• reduce的用法及实例


    reduce的定义:reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。说白了就是累加器。

    我们看一下之前的累加:

    看例子:

    //假设我们有一个数组
        var arr=[,1,2,3,4,5,6,7,8]
    //我们求这个数组里面值的综总和
    //按照平常写法:
        var num=0
        for(var i=0;i<arr.length;i++){
            num+=arr[i]
        }
        console.log(num)

    最后输出结果为:36

    下面介绍reduce:(它的基本语法):

    var arr=[1,2,3,4,5,6,7,8]
    var arr2=arr.reduce(function(item1,item2){//他有两个参数
        console.log(item1,item2) //我们先看一下输出什么
    })

    输出结果为:

    他的第一次的两个参数,打印出了数组的前两项,

    从第二次开始的第一个参数是回调函数的“返回值”,第二个参数从数组中取下一个值

    我们看一下,假如我们给他一个返回值:

    var arr=[1,2,3,4,5,6,7,8]
    var arr2=arr.reduce(function(item1,item2){
        console.log(item1,item2) 
        return "我是谁呀?"
    })

    我们看输出结果:

    下面我们继续上面的求数组值的总和:

    var arr=[1,2,3,4,5,6,7,8]
    var arr2=arr.reduce(function(item1,item2){
          console.log(item1,item2)
          return item1+item2
    })
    console.log(arr2)

    输出结果:

    当然他还有一个初始值(可写可不写):

    var arr=[1,2,3,4,5,6,7,8]
    var arr2=arr.reduce(function(item1,item2){
          console.log(item1,item2)
          return item1+item2
    },100)//初始值
    console.log(arr2)

    看结果它的第一个参数就是我们设置的初始值:

     下面我们写个对象的实例:

    //我们求出年龄和身高的总和
    var arr=[
            {
                age:22,
                height:180
            },
            {
                age:22,
                height:180
            },
            {
                age:22,
                height:180
            }
        ]
        var n=arr.reduce(function (item1,item2) {
            console.log(item1,item2)
            return{  //因为他是个对象所以我们返回一个对象
                age:item1.age+item2.age,
                height:item1.height+item2.height
            }
        }) //你也可以给他设置初始值,注意也要是一个对象
        console.log(n)

    输出结果:

  • 相关阅读:
    关于宏定义与内联函数
    vsv
    nginx与php之间的通信
    php高级
    PHP基础知识
    php结合redis实现高并发下的抢购、秒杀功能
    MySQL索引优化
    PHP基础(谈一谈Session&Cookie)
    Yii2框架查询指定字段和获取添加数据的id
    linux常用命令
  • 原文地址:https://www.cnblogs.com/larrywang/p/10741162.html
Copyright © 2020-2023  润新知