数组的 reduce方法
数组的 reduce方法
reduce()
方法对数组中的每个元素按序执行一个由你提供的 reducer
函数,每次运行都会 将先前元素的计算结果作为参数传入
,最后将其结果 汇总为单个返回值
。
当第一次执行这个回调函数的时候,不存在 “上一次计算的结果”
,所以如果需要回调函数从数组索引为 0
的元素开始执行,就需要传递 初始值
否则索引号为 0
的元素将会被 作为初始值 initialValue
,迭代器将从第二个元素开始执行
语法:
// 箭头函数写法Array.reduce((perviousValue,currentValue) => { *** })Array.reduce((perviousValue,currentValue,currentIndex) => { *** })Array.reduce((perviousValue,currentValue,currentIndex,array) => { *** })Array.reduce((perviousValue,currentValue,currentIndex,array) => { *** },initialValue)
// 普通函数写法...Array.reduce(function(perviousValue,currentValue,currentIndex,array){ *** },initialValue)
参数:
数组 reduce 方法,包含四个参数:
perviousValue
:上一次的计算结果的返回值currentValue
:数组中正在处理的元素。若指定了初始值,则值则为数组索引为 0 的元素,否则为 1currentIndex
:数组中正在处理的元素的索引。若指定了初始值,则起始索引为 0,否则为 1array
:被遍历的对象数组
initialValue(可选)
:此参数作为第一次调用函数时参数previousValue
的值,- 若指定了初始值
initialValue
,则currentValue
则将使用数组第一个元素;- 否则
perviousValue
将使用数组的第一个元素,而currentValue
将使用数组第二个元素
示例:
1. 计算数组所有元素的总和
// 定义了一个初始值(也可以直接在参数后面直接写)const initialValue = 0; // 定义了一个数组const sum = [0,1,2,3,4,5,6]; // 开始循环计算// 接收一个返回值const sumTotal = sum.reduce(function(previousValue,currentValue){ return perviousValue + currentValue},initialValue)// 打印总和console.log('sumTotal:' + sumTotal) // sumTotal:21
2. 累加对象数组的值
注意:如果要累加对象数组中包含的值,
必须
提供 initialValue 初始值
// 创建初始值const initialValue = 0;// 定义一个数组const arr = [{x:1},{x:2},{x:3},{x:4}];// 开始循环累加数组里面的每一个对象下的 xconst sumTotal = arr.reduce(function(previousValue,currentValue){return previousValue + currentValue.x // 对象.x 拿到里面的每一个 x 属性},initialValue)// 打印总和console.log('sumTotal:' + sumTotal); // sumTotal:10
数组的 reduce方法相关推荐
- 【JavaScript】查漏补缺 —数组中reduce()方法
[JavaScript]查漏补缺 -数组中reduce()方法
- 数组求和-reduce方法
function sum(...numbers){return numbers.reduce((pre,current)=>{return pre + current}) } console.l ...
- 数组的reduce方法
reduce方法有两个参数,第一个参数是操作数组项的函数:第二个参数则是传入的初始值,reduce最常用的方法是叠加,以下例子可以看出,reduce函数根据初始值0,不断的叠加数组项: var ite ...
- 提升代码格调——JavaScript 数组的 reduce() 方法入门
基本概念 reduce() 方法为数组中的每一个元素依次执行回调函数(不包括数组中被删除或从未被赋值的元素),返回一个具体的结果. 语法 reduce() 接收两个参数,其基本语法为: arr.red ...
- 数组reduce方法详解
目录 前言 reduce方法 案例 数组求和 数组扁平化 数组去重 数组对象去重 前言 很多前端开发中都知道数组的reduce方法可以用来给数组求和,但是你问到里面的具体参数代表的时候什么,很多人却不 ...
- reduce方法 实现数组对象中 每三个属性相加 形成新数组
需求: 数据格式: 每三个时间点的count属性值相加,形成新的数组:[] // 原数组 aList const aList = [{ time: '2023-83-17 01:80:00', cou ...
- JavaScript数组属性和方法
数组 字面量声明数组 let arr = [1,2,3,4] 构造函数声明数组 let arr = new Array(1,2,3) arr[0] = "a" arr[1] = & ...
- JS进阶篇--JS数组reduce()方法详解及高级技巧
基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...
- js中every用法_js数组中的方法 some, every, filter, find,map, reduce讲解及使用场景
前言 之前对数组的循环来说,我拿到代码就使用forEach循环,主要原因是我对数组的其他方法不是很了解,以及觉得forEach已经可以做到想要的效果,没必要在去使用其他方法,这都是对使用场景不了解导致 ...
最新文章
- Linux运维课程-Mysql之复制(2)
- 日常生活小技巧 -- 文件对比工具 Beyond Compare
- redis入门——Spring整合篇
- 优雅 | koa处理异常
- php加载lrc,javascript - 【求助】php如何获取虾米网的LRC地址?
- 描述文件安装失败无法连接到服务器_打开steam为什么提示无法连接至steam网络?...
- 酒店结婚播放PPT模板
- java音乐播放器脚本之家,HTML5音乐播放器skPlayer
- masquerade词根词缀_常用词根和词缀.doc
- 德国人的数学题375=1
- android bugly qq,Android如何快速集成腾讯Bugly
- unity 控制对象移动、旋转
- 干货全拿走-用Excel获取上证指数等50+股指行情及历史数据
- pr预设的卷及内核锐化是什么_PR内置特效合集
- 【算法思考】双目视差求像素深度公式理解
- [转]数据的游戏:冰与火
- 【php】注册系统和使用Xajax即时验证用户名是否被占用
- HTML+CSS实现商品介绍模考(以Apple14为案例)
- gson线上环境解析日期时报错JsonSyntaxException
- 芝加哥大学计算机专业排名,芝加哥大学计算机排名