zoukankan      html  css  js  c++  java
  • 数组(Array)的常用方法(reduce)

    reduce

    数组通过此方法,可以实现将每一项叠加称为一项。

    使用:sum = arr.reduce(fun, start);

    其中,fun为一个方法,接收四个参数,分别为

      pre:初始值或者上一次叠加(计算)结果值

      cur:当前项的值

      index:当前项的index

      arr:原数组

    其中,start为叠加计算定义类型,并且为初始值,此值可以根据实际情况设置为任意值(看例子2)。

    最终返回结果(sum)。

    例子1:

    const arr = [5, 10, 15];
    console.log('start'); const sum = arr.reduce((pre, cur, index, arr)=>{
      console.log(pre, cur, index); return pre + cur; }, 0);
    console.log('end');
    console.log('sum:', sum);

    // 打印结果分别为:
      start
      5, 10, 1
      15, 15, 2
      end
      sum: 30

    例子2:

    const arr = [
        {
            name: 'zs',
            score: 88
        }, 
        {
            name: 'ls',
            score: 90
        },
        {
            name: 'ww',
            score: 80
        }
    ];
    const sum = arr.reduce((pre, cur) =>{
        return pre + cur.score;
    }, 0);
    console.log('sum: ', sum);
    // sum: 258


    // 初始值可设置成任意值
    const sum1 = arr.reduce((pre, cur)=>{
      return pre + cur.score;
    }, -10);
    console.log('sum1: ', sum1);
    // sum1: 248


    // 初始值可设置为任意类型
    const re = arr.reduce((pre, cur)=>{
      pre[cur.name] = cur.score;
      return pre;
    }, {});
    console.log('re: ', re);
    //re: {zs: 88, ls: 90, ww: 80}
  • 相关阅读:
    BZOJ4245: [ONTAK2015]OR-XOR(前缀和)
    [HDU 4433]locker[DP]
    近期刷题的c语言总结。
    《BackboneJS框架的技巧及模式》(4)完结篇
    x+2y+3z=n的非负整数解数
    [置顶] 程序员看婚姻
    BNU29368:Check the Identity(栈)
    Python解决codeforces ---- 1
    带你走进EJB--MDB实现发送邮件(3)
    JIRA简介
  • 原文地址:https://www.cnblogs.com/jing5990/p/12394548.html
Copyright © 2011-2022 走看看