欢迎光临散文网 会员登陆 & 注册

ES6 之reduce的基本介绍与使用

2023-02-28 10:44 作者:doubleyong  | 我要投稿

现在ES6语法应用的特别广泛,今天我们就来介绍下ES6中的reduce方法,它的用法非常强大,下面就跟着我一起来学习它吧



01
基本介绍


定义:对数组中的每个元素执行一个自定义的累计器,将其结果汇总为单个返回值

形式:array.reduce((t, v, i, a) => {}, initValue)

 参数

      callback:回调函数(必选)

      initValue:初始值(可选)


    callback回调函数的参数

         total(t):累计器完成计算的返回值(必选)

         value(v):当前元素(必选)

          index(i):当前元素的索引(可选)

          array(a):当前元素所属的数组对象(可选)



过程(重点看)


  1.   以t 作为累计结果的初始值,不设置t则以数组第一个元素为初始值


  2.  开始遍历,使用累计器处理v,将v的映射结果累计到t上,结束此次循环,返回t


  3.   进入下一次循环,重复上述操作,直至数组最后一个元素


  4.   结束遍历,返回最终的t




02
如何运行


假如运行下段reduce()代码:


callback 被调用四次,每次调用的参数和返回值如下表:




03
reduce方法的应用


reduce() 的几个强大用法:

数组求和


二维数组转为一维数组



计算数组中每个元素出现的次数


方法一:


方法二:


数组去重

下面的方法,先要对数组进行升序排列


相关面试题:

完成一个'flatten'的函数,实现“拍平”一个多维数组为一维.

如:var testArr2 = [0, [1, [2, [3, [4, [5]]]]]];

ES6 之reduce的基本介绍与使用的评论 (共 条)

分享到微博请遵守国家法律