zoukankan      html  css  js  c++  java
  • 认识array method的reduce

    前言

    reduce属于JavaScript「synchronize同步」的array method,他就是把一整个array的所有内容,有顺序性的挤压squeeze最后变成一个值

    Reduce表达式

    [1,2,3,4].reduce((accumulator, currentValue) => {  
    //call back要做的动作,最后变成一个值
    }, initValue)
    //accumulator = 积累
    //for迴圈将阵列内容依序一个一个的带进来

    Reduce 需要

    • 一个变数
    • 一个for回圈
    • 一个初始值

    品牌vi设计公司http://www.maiqicn.com 办公资源网站大全https://www.wode007.com

    reduce 简化版polyfill

    const reduceFunc = (reducer, initVal, dataArray) => {
      let val = initVal;
      for(const i in dataArray) {
        val = reducer(val, dataArray[i]);
      }
      return val;
    }
    reduceFunc((acc, current) => (acc + current), 0, [1, 2, 3, 4])

    以上范例是拆解reduce的工作,简单来说一开始先拿到初始值initValue,然后用for迴圈一个一个的带进去reducer(val, dataArray[i]),acc的初始值是initVal接著的每一次for迴圈acc都会是前一次结果的值,过程顺序如下:
    //acc = 0, current = 1, val = 1
    //acc = 1, current = 2, val = 3
    //acc = 3, current = 3, val = 6
    //acc = 6, current = 4, val = 10

  • 相关阅读:
    ant
    Java中的值传递和引用传递
    待解决的问题
    Ant生成文件解析
    JUnit初学
    遍历枚举
    2013年5月阅读链接
    《C Primer Plus》阅读笔记(3)
    《C Primer Plus》阅读笔记(2)
    《C Primer Plus》阅读笔记(4)
  • 原文地址:https://www.cnblogs.com/xiaonian8/p/13696159.html
Copyright © 2011-2022 走看看