reduce函数详解
基本概念:
reduce() 方法对数组中的每个元素按序执行一个由您提供的 reduce 函数,每一次运行 reduce 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
简单来说就是:执行传入函数,函数的返回值作为下一次的参数。
参数
reduce方法接受两个参数:reduce(callback,initialValue)
callback: functon(previousValue,currentValue,currentIndex,array)
四个参数的含义:
previousValue:上一次调用 callbackFn 时的返回值。在第一次调用时,若指定了初始值 initialValue,其值则为 initialValue,否则为数组索引为 0 的元素 array[0]。
currentValue:数组中正在处理的元素。在第一次调用时,若指定了初始值 initialValue,其值则为数组索引为 0 的元素 array[0],否则为 array[1]。
currentIndex:数组中正在处理的元素的索引。若指定了初始值 initialValue,则起始索引号为 0,否则从索引 1 起始。
array:用于遍历的数组。
实际用途
// 求数组元素的和
let sum = [0, 1, 2, 3].reduce(function (previousValue, currentValue) {return previousValue + currentValue
}, 0)
// 结果为6
// 累加对象数组里的值
let initialValue = 0
let sum = [{x: 1}, {x: 2}, {x: 3}].reduce(function (previousValue, currentValue) {return previousValue + currentValue.x
}, initialValue)console.log(sum) // logs 6
// 数组去重
let myArray = ['a', 'b', 'a', 'b', 'c', 'e', 'e', 'c', 'd', 'd', 'd', 'd']
let myArrayWithNoDuplicates = myArray.reduce(function (previousValue, currentValue) {if (previousValue.indexOf(currentValue) === -1) {previousValue.push(currentValue)}return previousValue
}, [])console.log(myArrayWithNoDuplicates) // [a,b,c,d,e]
reduce函数详解相关推荐
- 【Python基础】reduce函数详解
转载请注明出处:[Python基础]reduce函数详解 reduce函数原本在python2中也是个内置函数,不过在python3中被移到functools模块中. reduce函数先从列表(或序列 ...
- reduce函数详解以及自己实现一个reduce函数
开篇语: 一直以来都知道数组有一个reduce方法,可是在工作过程中很少用到,对其用法也不是很清晰,今天抽时间好好整理一下,希望加深记忆,以后在工作过程中做到手到擒来,得心应手. 1.概念 首先看一下 ...
- c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战
本文涵盖 前言 高级函数概念 函数作为参数的高阶函数 map filter reduce sort详解与实战 函数作为返回值的高阶函数 isType函数与add求和函数 如何自己创建高阶函数 前言 一 ...
- pytorch函数详解
pytorch函数详解 在typora这里写之后复制到简书上 1. torchvision 1.1 transforms.Compose(transforms) 把几个转换组合 example: fr ...
- 【Pytorch】torch.argmax 函数详解
文章目录 一.一个参数时的 torch.argmax 函数 1. 介绍 2. 实例 二.多个参数时的 torch.argmax 函数 1. 介绍 2. 实例 实例1:二维矩阵 实例2:三维矩阵 实例3 ...
- linux 系统函数调用脚本文件,Linux系统调用fsync函数详解
Linux系统调用fsync函数详解 发布时间:2013-11-14 19:55:10 作者:佚名 我要评论 Linux fsync函数主要用于将同步内存中所有已修改的文件数据到储存设备,多用 ...
- python map函数详解
python map函数详解 python中有些内置的高阶函数,如map(),filter(),reduce():之所以称其为高阶函数,因为这类函数接受的参数中有一个参数为函数对象. map()函数格 ...
- C语言网络编程:accept函数详解
文章目录 前言 函数描述 代码实例 如何得到客户端的IP 和 端口号 前言 当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的 ...
- 【FFmpeg】函数详解(三)
FFmpeg函数详解 14.av_write_frame 15.av_interleaved_write_frame 16.av_write_trailer 17.avio_close 18.av_i ...
最新文章
- 用友二次开发——工资导入
- 对话创新工场陶宁:AI步入深水区下的投资逻辑
- 十年后你用什么听音乐?
- Drop Down Menu
- flutter版本控制工具 `FVM`
- SAP Spartacus Focusdirective继承自Lockdirective,静态代码分析
- 【全军覆没】麻省理工把中国学生拉入黑名单,斯坦福取消中国大陆面试! 这是怎么了?...
- 格科半导体成功引入ASML先进ArF光刻机
- 《x86汇编语言:从实模式到保护模式》课后答案
- mysql实战数据.sql_Mysql实战(DML增删改+Select)
- java 内部类_Java内部类总结有哪些 没有基础该怎么学Java?
- IE9 表格错位bug
- Python多线程(threading模块)
- 基于JSP的图书管理系统
- 反射的学习(参考尚硅谷视频)
- 计算机视觉-OpenCV(银行卡号识别)
- matlab实现zca去白化,白化算法
- java effective
- 【洛谷P4826】Superbull S【最大生成树】
- 移动硬盘坏了数据可以恢复吗 移动硬盘坏了怎么导出数据