简介
  1. reduce()接受一个函数作为累加器,从数组第一个值开始缩减,直到最后一个值缩减完成。最终计算为一个值
  2. reduce()可做为高阶函数,用于函数的,compose
  3. 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()方法的理解与应用相关推荐

  1. javascript中reduce的用法

    文章目录 一.reduce基本语法 二.reduce常用场景 1. 求和 2. 数据拼接 三.实际项目中使用示例 1. 模拟Redux中的compose方法 1.1. 简单写法 1.2 利用reduc ...

  2. JavaScript 中数组方法 reduce 的妙用之处

    Javascript数组方法中,相比map.filter.forEach等常用的迭代方法,reduce常常被我们所忽略,今天一起来探究一下reduce在我们实战开发当中,能有哪些妙用之处,下面从red ...

  3. JavaScript数组归并方法reduce

    示例代码: <!DOCTYPE html> <html lang="zh"><head><meta charset="UTF-8 ...

  4. javascript学习系列(5):数组中的reduce方法

    最好的种树是十年前,其次是现在.歌谣 每天一个前端小知识 提醒你改好好学习了 知乎博主 csdn博主 b站博主  放弃很容易但是坚持一定很酷     我是歌谣 喜欢就一键三连咯 你得点赞是对歌谣最大的 ...

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

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

  6. 提升代码格调——JavaScript 数组的 reduce() 方法入门

    基本概念 reduce() 方法为数组中的每一个元素依次执行回调函数(不包括数组中被删除或从未被赋值的元素),返回一个具体的结果. 语法 reduce() 接收两个参数,其基本语法为: arr.red ...

  7. reduce 方法 (Array) (JavaScript)

    概念: 对数组中的所有元素调用指定的回调函数.该回调函数的返回值为累积结果,并且此返回值在下一次调用该回调函数时作为参数提供. 语法: array1.reduce(callbackfn[, initi ...

  8. 这是如何更好地利用JavaScript数组的方法

    by pacdiv 由pacdiv 这是如何更好地利用JavaScript数组的方法 (Here's how you can make better use of JavaScript arrays) ...

  9. 详解数组中的reduce方法

    前言 这几天面试被问到了数组的方法有哪些,回答得简直一塌糊涂,面试官说reduce的功能很强大,于是想对这个方法进行总结,在红宝书中对这个方法的描述并不算多,我也是参考了其他文章才进行总结的,下面就开 ...

最新文章

  1. 使用data uri将图片内嵌到html中
  2. 请问生产成本收集器与标准成本评估有什么关联?
  3. 2017-2018-2 20165301 实验五《网络编程与安全》实验报告
  4. 测验4: 程序的控制结构 (第4周)
  5. antdesign的表单中的下拉框设置默认值BUG处理
  6. mysql 分组top_MySQL:如何查询出每个分组中的 top n 条记录?
  7. 深度学习第一次课-数学
  8. org.springframework.hateoas.mvc.ControllerLinkBuilder之ClassNotFoundException的错误
  9. 004、SVN更新改密码
  10. mysql 只显示箭头_为什么在DOS窗口中使用MySQL时,输入命令后只出现一个箭头,输入什么内容都是这样?...
  11. python的快捷键总结
  12. python pytz_关于python:找不到符合pytz要求的版本
  13. 如何在文件夹中打开cmd命令窗
  14. “你才二十多岁,可以成为任何你想成为的人”
  15. 订餐系统c语言代码大全,C语言订餐系统
  16. 汇编c语言基础教程编程达人,编程达人 《汇编、C语言基础教程》第一章 进制1.6 逻辑运算(连载)...
  17. coutendl;什么意思?
  18. 通过身份证号得到年龄、性别和出生日期
  19. 熊猫烧香攻防战 武汉男孩称不再更新版本
  20. 神经网络翻译是什么意思,神经网络用英文怎么说

热门文章

  1. java 继承关键字_Java继承
  2. ChatGPT的接口在哪
  3. Java蓝桥饮料代购
  4. ALGO-2 算法训练 最大最小公倍数
  5. 测试用例--------水杯
  6. 劳动力就业及工资情况
  7. shell代带密码压缩解压缩zip
  8. sql oracle nvl,将多个列使用NVL – Oracle SQL
  9. I9300 国行联通定制修复手记
  10. Shell-常用命令:删除文件、目录【rm 待删除文件或目录】