• 关于javascript 的reduce方法


    作为一个前端菜鸟,觉得资料比较好,特地分享一下~~

    reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。
    你一定也和我一样看的有点迷糊,其实reduce接收的就是一个回调函数,去调用数组里的每一项,直到数组结束。
    reduce接受一个函数,函数有四个参数,分别是:
         1、上一次的值;
         2、当前值;
         3、当前值的索引;
         4、数组;

    var array = [4,5,6,7];
    var singleVal = 0;

    // 只能在这一行下面写代码
    var singleVal = array.reduce(function(previousVal,currentVal){
    return previousVal + currentVal;
    },0);

    这个是求总和的,所有数组的值的和,

    分析一下这个结果,这个回调函数共调用了4次,因为第一次没有previousValue,所以直接从数组的第二项开始,一只调用到数组结束。
    reduce还有第二个参数,我们可以把这个参数作为第一次调用callback时的第一个参数,上面这个例子因为没有第二个参数,所以直接从数组的第二项开始,如果我们给了第二个参数为5,那么结果就是这样的:
    结果应该是 数组的和是 5 + 4 +5 + 6+7 = 27 
    第一次调用的previousValue的值就用传入的第二个参数代替,函数被调用了5次,也就是数组的length。
    reduce可以帮助我们轻松的完成很多事,除了累加,还有扁平化一个二维数组:
     
    没有图啊,嫌麻烦 
  • 相关阅读:
    [排序算法] 选择排序(2种)
    [排序算法] 交换排序(2种)
    针对Oracle表 列字段的增加、删除、修改以及重命名操作sql
    myelcipse中SVN进行代码更新和提交
    SVN服务器的搭建
    无法变更启动序列号
    mybatis入门学习记录(一)
    java中判断两个字符串是否相等的问题
    xshell如何同时打开多个标签
    设计模式(六) xml方式实现AOP
  • 原文地址:https://www.cnblogs.com/qingcui277/p/7382279.html
Copyright © 2020-2023  润新知