加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.cn/)- 专有云、图像技术、经验、数据治理、专属主机!
当前位置: 首页 > 站长资讯 > 动态 > 正文

你不得不知道的数组reduce高级用法

发布时间:2021-03-04 11:15:10 所属栏目:动态 来源:互联网
导读:技术文章了。哈哈,不是不想写,而是实在太忙,这段时间每天不是上班就是加班,完全没有自己的时间。这篇文章也是抽空之余完成,希望大家喜欢,谢谢大家继续支持我。 本文首发于『搜狐技术产品』公众号,首发内容与博客内容略有不同,博客内容今早发布时额外

技术文章了。哈哈,不是不想写,而是实在太忙,这段时间每天不是上班就是加班,完全没有自己的时间。这篇文章也是抽空之余完成,希望大家喜欢,谢谢大家继续支持我。

本文首发于『搜狐技术产品』公众号,首发内容与博客内容略有不同,博客内容今早发布时额外有所增加

reduce作为ES5新增的常规数组方法之一,对比forEach、filter和map,在实际使用上好像有些被忽略,发现身边的人极少使用它,导致这个如此强大的方法被逐渐埋没。

如果经常使用reduce,怎么可能放过如此好用的它呢!我还是得把他从尘土中取出来擦干净,奉上它的高级用法给大家。一个如此好用的方法不应该被大众埋没。

下面对reduce的语法进行简单说明,详情可查看MDN的reduce()的相关说明。

  •  定义:对数组中的每个元素执行一个自定义的累计器,将其结果汇总为单个返回值
  •  形式:array.reduce((t, v, i, a) => {}, initValue)
  •  参数
    •   callback:回调函数(必选)
    •   initValue:初始值(可选)
  •  回调函数的参数
    •   total(t):累计器完成计算的返回值(必选)
    •   value(v):当前元素(必选)
    •   index(i):当前元素的索引(可选)
    •   array(a):当前元素所属的数组对象(可选)
  •  过程
    •   以t作为累计结果的初始值,不设置t则以数组第一个元素为初始值
    •   开始遍历,使用累计器处理v,将v的映射结果累计到t上,结束此次循环,返回t
    •   进入下一次循环,重复上述操作,直至数组最后一个元素
    •   结束遍历,返回最终的t

reduce的精华所在是将累计器逐个作用于数组成员上,把上一次输出的值作为下一次输入的值。下面举个简单的栗子,看看reduce的计算结果。

(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读