• Array的reduce()把一个函数作用在这个Array的[x1, x2, x3...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算

    [x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
    复制代码

reduce(f,initNum)包含两个参数

  • 第一个参数f:执行化简参数的函数,f(x,y)也包含两个参数

    • 第一个参数是f执行的返回值
    • 第二个参数是数组元素值
  • 第二个参数initNum(可选):传递给函数f的初始值,
    • 若存在该参数,那么第一次调用函数时,x就是initNum
    • 若不存在该参数,使用数组第一个元素作为初始值

1.求和

var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {return x + y;
}); // 25
复制代码

2.求积

var arr = [1, 2, 3, 4];
arr.reduce(function(x, y) {return x * y;
}); //24
复制代码

3.不使用parseInt() 将'12345' 转换成 数字12345

let s = '12345';
s.split('').map(x => {//['1','2','3','4','5']return x.charCodeAt(0) - 48;//[1,2,3,4,5]
}).reduce((x,y) => {return x * 10 + y; //12345
})
复制代码

redecuRight()工作原理同reduce(),不同的是它按照数组索引从高到低(即从右到左)的顺序传值。

转载于:https://juejin.im/post/5c3f01caf265da614933e205

数组reduce()方法相关推荐

  1. JS进阶篇--JS数组reduce()方法详解及高级技巧

    基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...

  2. JS进阶篇--JS数组reduce()方法详解及高级技巧 1

    基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...

  3. 比较完善的手写数组reduce方法

    手写数组reduce方法 看过其他的文章, 感觉他们实现的reduce方法不够完善, 分享一下自己写的比较完善的reduce方法, 如果错误的地方, 请留言给我 Array.prototype.new ...

  4. 二维数组各行求和_JS数组reduce()方法详解及高级技巧

    reduce()方法可以搞定的东西,for循环,或者forEach方法有时候也可以搞定,那为啥要用reduce()?这个问题,之前我也想过,要说原因还真找不到,唯一能找到的是:通往成功的道路有很多,但 ...

  5. 数组reduce方法详解

    目录 前言 reduce方法 案例 数组求和 数组扁平化 数组去重 数组对象去重 前言 很多前端开发中都知道数组的reduce方法可以用来给数组求和,但是你问到里面的具体参数代表的时候什么,很多人却不 ...

  6. ES6中的数组reduce()方法详解

    目录 1. 语法reduce说明 2. 一些用途 3. 极力避免的情况 reduce() 方法对数组中的每个元素执行一个由我们提供的reducer函数(升序执行),将其结果汇总为单个返回值. 1. 语 ...

  7. js 数组 reduce() 方法

    概念 reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值. MDN:https://developer.mozilla.org/zh-C ...

  8. JS数组reduce()方法

    基本用法 arr.reduce(function(prev,cur,index,arr){ ... }, init);或者arr.reduce(function(prev,cur,index,arr) ...

  9. 数组的 reduce方法

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

  10. JS中数组迭代方法(JavaScript从入门到疯癫)

    数组迭代的方法包含了以下七个( map,filter,forEach,some,every, findIndex,reduce) 目录 1.map 2.filter 3.foreach 4.数组som ...

最新文章

  1. 事件源event.target
  2. vue组件的基本使用,以及组件之间的基本传值方式
  3. android:ellipsize实现跑马灯效果总结
  4. Linux I2C子系统分析之(一) ----- 用GPIO模拟I2C总线
  5. C#使用RSA加密解密文件
  6. python numpy np.full(shape, fill_value, dtype=None, order='C')函数 以指定数值填充指定形状的数组
  7. 获得本机的IP,掩码和网关
  8. nyoj-37 回文字符串
  9. 【原】分享超实用工具给大家
  10. 逾期之后还能贷款吗?
  11. text 两端对齐 小程序_leetcode 68 文本左右对齐
  12. 技巧收藏|10个JavaScript常用数组操作方法
  13. spring-retry重试与熔断详解—《亿级流量》内容补充
  14. 为什么深度学习有效?(why deep learning works)
  15. 3.netwox网络工具集入门教程
  16. linux中使用网易云音乐
  17. Win11截图工具在哪里?
  18. imatest测试分辨率使用教程
  19. silhouette_matlab
  20. switch语句的执行顺序

热门文章

  1. 关于《啊哈!算法》相关资源
  2. [导入]SQL Server存储过程编程经验技巧
  3. MATLAB中一些特殊的函数
  4. Cinesamples CineOrch for Mac(电影管弦乐队音色库)v2.0特别版
  5. Mac使用技巧:在“快速查看”中查看和编辑文件
  6. Openresty 安装、源码编译,增加WAF模块naxsi
  7. 电脑里的视频被误删了可以用EasyRecovery恢复吗?
  8. 如何用EasyRecovery 快速找回误删的截图
  9. Docker下Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决方案
  10. jedis默认切片实现及对应python版本实现