1、语法

arr.reduce(callback, initialValue)  reduce为数组中的每个元素依次执行回调函数,接受4个参数:初始值(或者上次回调函数的返回值)、当前元素值、当前索引、调用reduce的数组。

2、实例解析initialValue参数

2.1当不设置initialValue参数时

输出结果为:

可以看出,index是从1开始的,第一次的prev的值是数组的第一个值。数组长度为3,但是reduce循环次数为2。

2.2 当设置initialValue参数为2 时,输出结果为:

可以看出,index是从0开始的,第一次的prev的值是我们设置的initialValue的值。数组长度为3,reduce函数循环3次。

结论:如果没有设置initialValue,reduce会从索引为1的地方开始执行callback;如果提供initialValue,则会从索引为0的地方开始执行。

注意:如果数组为空,且不提供intialValue时,运行reduce会报错

所以提供处置值更安全。

3、reduce数组的简单用法

求最大值、最小值

数组求和、求乘积

4、reduce的高级用法

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

可简写为:

(2)数组去重

(3)将二维数组化为一维

(4)将多维数组化为一维数组

(5)、对象里的属性求和

(6)、对象数组去重

js数组的reduce方法相关推荐

  1. 常用的js数组去重的方法

    常用的js数组去重的方法 1. 使用for循环去重 2.使用set对象去重 3.使用数组索引indexOf()方法搭配for循环去重 4.使用includes()方法搭配for循环去重 5.使用fif ...

  2. 【JavaScript】查漏补缺 —数组中reduce()方法

    [JavaScript]查漏补缺 -数组中reduce()方法

  3. 数组的 reduce方法

    数组的 reduce方法 reduce() 方法对数组中的每个元素按序执行一个由你提供的 reducer 函数,每次运行都会 将先前元素的计算结果作为参数传入,最后将其结果 汇总为单个返回值. 当第一 ...

  4. 数组求和-reduce方法

    function sum(...numbers){return numbers.reduce((pre,current)=>{return pre + current}) } console.l ...

  5. js数组的reduce与reduceRight方法

    数组由众多的实例方法,下面记录下reduce的使用方法 arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initi ...

  6. 你真的了解JS数组的那些方法吗?

    寄语: JS数组的方法非常的丰富和琐碎,学习和使用过程中总是需要反复的记忆.查看文档,但作为JS基础这样真的不应该,我们应该把它记得滚瓜烂熟,深入理解才对. 但是要怎样才能做到呢?这正是我也本文的初衷 ...

  7. vue js 数组对象去重方法

    一.根据数组中唯一的值去重, cur原数组, next要添加的数据 this.warnSiteWords.push({one:this.valueUrl,two:this.valueName}); l ...

  8. 数组的reduce方法

    reduce方法有两个参数,第一个参数是操作数组项的函数:第二个参数则是传入的初始值,reduce最常用的方法是叠加,以下例子可以看出,reduce函数根据初始值0,不断的叠加数组项: var ite ...

  9. js数组操作各种方法

    JS数组方法汇总 shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2, ...

  10. JS数组的迭代器方法

    迭代器forEachevery 一.迭代器方法 迭代器方法, 这些方法对数组中的每一个元素应用一个函数,可以返回一个值,一组值或一个新数组. 不生成新数组的迭代器方法 1.forEach() forE ...

最新文章

  1. 如何将github上的 lib fork之后通过podfile 改变更新源到自己fork的地址
  2. Hibernate中get方法和load方法的区别
  3. C++对象模型4——多重继承的对象内存模型、vptr与vtbl的创建与重置的时机、不要在含有虚函数的类的构造函数中调用memset
  4. ASP.NET MVC 学习网站
  5. [蓝桥杯2017决赛]分考场、OpenJudge:分成互质数
  6. oracle 用户禁止登录,[转] oracle限制用户在某个时间段内禁止登录数据库
  7. 中国农业科学院(深圳)农业基因组所Yuwen Liu课题组诚聘副研究员(30-50万)
  8. 超赞!机器学习画图模板ML Visuals更新了
  9. console vue 打包之后怎么去掉_Vue Cli 3 打包配置--自动忽略 console.log 语句
  10. [转]Java web 开发 获取用户ip
  11. java创建线程的三种方式及其对照
  12. webQQ协议——模拟登录
  13. Google-Spyder:Google搜索引擎关键词检索结果抓取
  14. 在图书馆看到自己出版的图书是一种怎样的体验?
  15. write()与 read() 函数用法(C语言)
  16. Linux系统编程-进程概念、进程管理、信号处理
  17. win11找不到录音机
  18. 摩拜联手高通中移动 剑指最大物联平台步子太大?
  19. java 常用 函数式接口_「java8系列」神奇的函数式接口
  20. python识别手写文字_Python3实现简单可学习的手写体识别(实例讲解)

热门文章

  1. uc云观媒体服务平台_自媒体平台UC云观开放收益功能,自媒体作者有收入了
  2. windows 10 ltsc 安装微软商店
  3. 坚持学习,坚持阅读,坚持思考
  4. 中国大学MOOC-陈越、何钦铭-数据结构-起步能力自测题
  5. 杰理之无线MIC【篇】
  6. PostgreSQL eighth class
  7. 关闭WIN7休眠功能
  8. 独到科技CEO:十年扎根社交数据,用AI技术帮助企业更好服务消费者
  9. 日光能和电池两用计算机,为什么太阳照射的光可以给太阳能转化为电,而我们的日光灯却不行?...
  10. python实现指纹识别毕业论文_指纹识别系统设计毕业论文+开题报告+翻译及原文+设计源码...