js中数组Array.reduce方法介绍及使用场景
时间:2022-07-22
本文章向大家介绍js中数组Array.reduce方法介绍及使用场景,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 作用
reduce()
方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。这样说可能不好理解,下面来看下语法以及如何使用
2 语法
arr.reduce((accumulator, currentValue, index, array)=>{ } , init)
第一个参数是一个回调函数 有四个参数
accumulator 表示上一次调用回调时的返回值,或者初始值 init 最后成为最终的单个结果值
currentValue 表示当前正在处理的数组元素
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1
array 表示调用reduce()的数组
第二个参数
init 作为第一次调用 callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。如果没传递初始值数组就会从索引1开始 有初始值就从0开始 callback 的第一个参数就是初始值 在没有初始值的空数组上调用 reduce 将报错。
解析各个参数
(1) 不传init
初始值时 下面的代码 没有传递init初始值 currentIndex 索引默认从1 开始
(2)传递init
初始值时 各个参数的打印情况
3 使用场景
介绍完基本的使用后 现在下面是使用场景 从易到难
(1) 求数组项之和
(2) 求数组最大值
(3) 数组去重
(4) 求字符串中字母出现的次数
(5) 二维数组降维
(6) 多维数组降维
- Angular+servlet java实现前后端数据交互
- servlet容器tomcat和jetty的简单使用
- activiti学习笔记(一) 获取流程配置实例
- ofbiz 服务引擎(一) controller中服务的调用解析
- ofbiz实体引擎(九) 多租户
- SparkStreaming入门
- 拒绝重复造轮子,用composer搞自己的框架(2)
- 拒绝重复造轮子,用composer搞自己的框架(1)
- 我的第一次ChIP-seq实践
- SparkStreaming窗口操作
- 史上最全Git使用手册
- 我所理解的 PHP Trait
- 算法 | 数据结构常见的八大排序算法
- 高通量数据下载还能这样操作?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 这一次搞懂Spring的XML解析原理
- 这一次搞懂Spring自定义标签以及注解解析原理
- 这一次搞懂Spring的Bean实例化原理
- 单片机入门学习十三 STM32单片机学习十 通用定时器
- Spring IOC原理补充(循环依赖、Bean作用域等)
- 这一次搞懂Spring代理创建及AOP链式调用过程
- 这一次搞懂Spring事务注解的解析
- 这一次搞懂Spring事务是如何传播的
- 这一次搞懂SpringMVC原理
- 这一次搞懂Spring Web零xml配置原理以及父子容器关系
- 这一次搞懂SpringBoot核心原理(自动配置、事件驱动、Condition)
- 全网最深分析SpringBoot MVC自动配置失效的原因
- Mybatis源码初探——优雅精良的骨架
- 深入Mybatis源码——配置解析
- 深入Mybatis源码——执行流程