js数组的reduce方法
1、语法
arr.reduce(callback, initialValue) reduce为数组中的每个元素依次执行回调函数,接受4个参数:初始值(或者上次回调函数的返回值)、当前元素值、当前索引、调用reduce的数组。
2、实例解析initialValue参数
2.1当不设置initialValue参数时
输出结果为:
可以看出,index是从1开始的,第一次的prev的值是数组的第一个值。数组长度为3,但是reduce循环次数为2。
2.2 当设置initialValue参数为2 时,输出结果为:
可以看出,index是从0开始的,第一次的prev的值是我们设置的initialValue的值。数组长度为3,reduce函数循环3次。
结论:如果没有设置initialValue,reduce会从索引为1的地方开始执行callback;如果提供initialValue,则会从索引为0的地方开始执行。
注意:如果数组为空,且不提供intialValue时,运行reduce会报错
所以提供处置值更安全。
3、reduce数组的简单用法
求最大值、最小值
数组求和、求乘积
4、reduce的高级用法
(1)计算数组中每个元素出现的次数
可简写为:
(2)数组去重
(3)将二维数组化为一维
(4)将多维数组化为一维数组
(5)、对象里的属性求和
(6)、对象数组去重
js数组的reduce方法相关推荐
- 常用的js数组去重的方法
常用的js数组去重的方法 1. 使用for循环去重 2.使用set对象去重 3.使用数组索引indexOf()方法搭配for循环去重 4.使用includes()方法搭配for循环去重 5.使用fif ...
- 【JavaScript】查漏补缺 —数组中reduce()方法
[JavaScript]查漏补缺 -数组中reduce()方法
- 数组的 reduce方法
数组的 reduce方法 reduce() 方法对数组中的每个元素按序执行一个由你提供的 reducer 函数,每次运行都会 将先前元素的计算结果作为参数传入,最后将其结果 汇总为单个返回值. 当第一 ...
- 数组求和-reduce方法
function sum(...numbers){return numbers.reduce((pre,current)=>{return pre + current}) } console.l ...
- js数组的reduce与reduceRight方法
数组由众多的实例方法,下面记录下reduce的使用方法 arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initi ...
- 你真的了解JS数组的那些方法吗?
寄语: JS数组的方法非常的丰富和琐碎,学习和使用过程中总是需要反复的记忆.查看文档,但作为JS基础这样真的不应该,我们应该把它记得滚瓜烂熟,深入理解才对. 但是要怎样才能做到呢?这正是我也本文的初衷 ...
- vue js 数组对象去重方法
一.根据数组中唯一的值去重, cur原数组, next要添加的数据 this.warnSiteWords.push({one:this.valueUrl,two:this.valueName}); l ...
- 数组的reduce方法
reduce方法有两个参数,第一个参数是操作数组项的函数:第二个参数则是传入的初始值,reduce最常用的方法是叠加,以下例子可以看出,reduce函数根据初始值0,不断的叠加数组项: var ite ...
- js数组操作各种方法
JS数组方法汇总 shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2, ...
- JS数组的迭代器方法
迭代器forEachevery 一.迭代器方法 迭代器方法, 这些方法对数组中的每一个元素应用一个函数,可以返回一个值,一组值或一个新数组. 不生成新数组的迭代器方法 1.forEach() forE ...
最新文章
- 如何将github上的 lib fork之后通过podfile 改变更新源到自己fork的地址
- Hibernate中get方法和load方法的区别
- C++对象模型4——多重继承的对象内存模型、vptr与vtbl的创建与重置的时机、不要在含有虚函数的类的构造函数中调用memset
- ASP.NET MVC 学习网站
- [蓝桥杯2017决赛]分考场、OpenJudge:分成互质数
- oracle 用户禁止登录,[转] oracle限制用户在某个时间段内禁止登录数据库
- 中国农业科学院(深圳)农业基因组所Yuwen Liu课题组诚聘副研究员(30-50万)
- 超赞!机器学习画图模板ML Visuals更新了
- console vue 打包之后怎么去掉_Vue Cli 3 打包配置--自动忽略 console.log 语句
- [转]Java web 开发 获取用户ip
- java创建线程的三种方式及其对照
- webQQ协议——模拟登录
- Google-Spyder:Google搜索引擎关键词检索结果抓取
- 在图书馆看到自己出版的图书是一种怎样的体验?
- write()与 read() 函数用法(C语言)
- Linux系统编程-进程概念、进程管理、信号处理
- win11找不到录音机
- 摩拜联手高通中移动 剑指最大物联平台步子太大?
- java 常用 函数式接口_「java8系列」神奇的函数式接口
- python识别手写文字_Python3实现简单可学习的手写体识别(实例讲解)
热门文章
- uc云观媒体服务平台_自媒体平台UC云观开放收益功能,自媒体作者有收入了
- windows 10 ltsc 安装微软商店
- 坚持学习,坚持阅读,坚持思考
- 中国大学MOOC-陈越、何钦铭-数据结构-起步能力自测题
- 杰理之无线MIC【篇】
- PostgreSQL eighth class
- 关闭WIN7休眠功能
- 独到科技CEO:十年扎根社交数据,用AI技术帮助企业更好服务消费者
- 日光能和电池两用计算机,为什么太阳照射的光可以给太阳能转化为电,而我们的日光灯却不行?...
- python实现指纹识别毕业论文_指纹识别系统设计毕业论文+开题报告+翻译及原文+设计源码...