JavaScript -- arr.reduce()方法的理解与应用
简介
- reduce()接受一个函数作为累加器,从数组第一个值开始缩减,直到最后一个值缩减完成。最终计算为一个值
- reduce()可做为高阶函数,用于函数的,compose
- reduce()无法调用空数组,会报错。
语法:
array.reduce( function (total, currentValue, currentIndex, arr), initialValue)
arr.reduce (function ,initialValue) | function (total, currentValue, currentIndex, arr) |
---|---|
fun: 回调函数 | total: 初始值initialValue,或fun的返回值 |
initialValue: 传递函数初始值 | currentValue:当前值 |
. | currentIndex:当前我的索引 |
. | arr:要累加的arr非空数组 |
要注意的是当 initialValue 的值为空的,也就是没有初始值时,函数第一次累加的 total 将会是 arr 的第一个元素,currentindex 的值为 1,
简单例子:
Exp1
累加应用
let arr2 = [1,2,3,4,5,6,7,8,9,10]
let allsum = arr2.reduce((sum,currentValue)=>{return sum += currentValue
},100)
console.log(allsum)//155
Exp2
将string1分割为数组[a,b,c,d],用reduce拼接到newStr中,得到的结果 0abcd;
let string = 'a-b-c-d'
let arr = string.split('-')//[a,b,c,d]
let newStr = '0'function getString(all, currentValue, currentIndex, arr) { console.log(all, currentValue, currentIndex)return all += currentValue
}
let value = arr.reduce(getString,newStr)
console.log(value) // 0abcd
getString部分运行结果: 被调用四次
0 a 0
0a b 1
0ab c 2
0abc d 3最终value打印:
0abcd
要注意的是,如果没有初始值 newStr,运行结果如
getString部分运行结果: 被调用三次
a b 1 //第一次循环将arr的第一个元素作为初始值,当前索引为1
ab c 2
abc d 3最终value打印:
abcd
JavaScript -- arr.reduce()方法的理解与应用相关推荐
- javascript中reduce的用法
文章目录 一.reduce基本语法 二.reduce常用场景 1. 求和 2. 数据拼接 三.实际项目中使用示例 1. 模拟Redux中的compose方法 1.1. 简单写法 1.2 利用reduc ...
- JavaScript 中数组方法 reduce 的妙用之处
Javascript数组方法中,相比map.filter.forEach等常用的迭代方法,reduce常常被我们所忽略,今天一起来探究一下reduce在我们实战开发当中,能有哪些妙用之处,下面从red ...
- JavaScript数组归并方法reduce
示例代码: <!DOCTYPE html> <html lang="zh"><head><meta charset="UTF-8 ...
- javascript学习系列(5):数组中的reduce方法
最好的种树是十年前,其次是现在.歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主 放弃很容易但是坚持一定很酷 我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的 ...
- 【JavaScript】查漏补缺 —数组中reduce()方法
[JavaScript]查漏补缺 -数组中reduce()方法
- 提升代码格调——JavaScript 数组的 reduce() 方法入门
基本概念 reduce() 方法为数组中的每一个元素依次执行回调函数(不包括数组中被删除或从未被赋值的元素),返回一个具体的结果. 语法 reduce() 接收两个参数,其基本语法为: arr.red ...
- reduce 方法 (Array) (JavaScript)
概念: 对数组中的所有元素调用指定的回调函数.该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供. 语法: array1.reduce(callbackfn[, initi ...
- 这是如何更好地利用JavaScript数组的方法
by pacdiv 由pacdiv 这是如何更好地利用JavaScript数组的方法 (Here's how you can make better use of JavaScript arrays) ...
- 详解数组中的reduce方法
前言 这几天面试被问到了数组的方法有哪些,回答得简直一塌糊涂,面试官说reduce的功能很强大,于是想对这个方法进行总结,在红宝书中对这个方法的描述并不算多,我也是参考了其他文章才进行总结的,下面就开 ...
最新文章
- 使用data uri将图片内嵌到html中
- 请问生产成本收集器与标准成本评估有什么关联?
- 2017-2018-2 20165301 实验五《网络编程与安全》实验报告
- 测验4: 程序的控制结构 (第4周)
- antdesign的表单中的下拉框设置默认值BUG处理
- mysql 分组top_MySQL:如何查询出每个分组中的 top n 条记录?
- 深度学习第一次课-数学
- org.springframework.hateoas.mvc.ControllerLinkBuilder之ClassNotFoundException的错误
- 004、SVN更新改密码
- mysql 只显示箭头_为什么在DOS窗口中使用MySQL时,输入命令后只出现一个箭头,输入什么内容都是这样?...
- python的快捷键总结
- python pytz_关于python:找不到符合pytz要求的版本
- 如何在文件夹中打开cmd命令窗
- “你才二十多岁,可以成为任何你想成为的人”
- 订餐系统c语言代码大全,C语言订餐系统
- 汇编c语言基础教程编程达人,编程达人 《汇编、C语言基础教程》第一章 进制1.6 逻辑运算(连载)...
- coutendl;什么意思?
- 通过身份证号得到年龄、性别和出生日期
- 熊猫烧香攻防战 武汉男孩称不再更新版本
- 神经网络翻译是什么意思,神经网络用英文怎么说