reduce函数及其用法
reduce方法在平时用的比较少,最近整理数组去重觉得它还是挺好用的,然而它还有好多功能,下面就梳理一下它都有哪些用法。
一、mdn给的解释:
reduce()
方法对数组中的每个元素按序执行一个由您提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
提取一下:
1. 为数组的每个值从左到右执行提供的函数;
2. 将数组缩减为单个值(函数遍历整个数组后的结果)。
二、语法:
arr.reduce(callback,[initialValue])
initialValue
可选,指定了初始值 initialValue
,则起始索引号为 0(从初始值开始计算),否则从索引 1 起始(从数组第一个元素开始计算)。
三、用法
1. 求和 / 求积
let arr=[1,2,3,4]
arr.reduce((x,y)=>x+y); //10
arr.reduce((x,y)=>x*y); //24
2. 对象里属性求和/求积
var result = [{subject: 'math',score: 10},{subject: 'chinese',score: 20},
];result.reduce(function(prev, cur) {return cur.score + prev; //和return cur.score * prev; //积
}, 0); //30
3. 计算数组中每个元素出现的次数
let arr= ['x', 'y', 'z','y'];arr.reduce((pre,cur)=>{if(cur in pre){pre[cur]++;}else{pre[cur]=1;}return pre;
},{}); //{x:1,y:2,z:1}
4. 将二维数组转化为一维数组 / 将多维数组转化为一维数组
let arr = [[1, 2], [2, 4]]
arr.reduce((pre,cur)=>{return pre.concat(cur);
},[]) //[1, 2, 2, 4]let arr = [[1, 2], [[3,4], 4]]
const newArr = function(arr){return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
} //[1, 2, 3, 4, 4]
5. 数组去重 / 对象数组去重
//数组
let arr = [1,2,3,3,1]
let newArr = arr.reduce((pre,cur)=>{if(!pre.includes(cur)){return pre.concat(cur)}else{return pre}
},[]) // [1, 2, 3]//对象数组
let arr = [{name: 'x', id:1},{name: 'y', id:2},{name: 'z', id:1},
]
let obj = {}
let newArr = arr.reduce((item, next)=>{obj[next.id] ? "" : (obj[next.id] = true && item.push(next));return item;
},[]) // [{name: 'x', id:1}, {name: 'y', id:2}]
reduce函数及其用法相关推荐
- Python中的map()函数和reduce()函数的用法
Python中的map()函数和reduce()函数的用法 这篇文章主要介绍了Python中的map()函数和reduce()函数的用法,代码基于Python2.x版本,需要的朋友可以参考下
- Python 3.x中reduce()函数完整用法
在Python 3.x中,reduce()不再是内置函数,而是移到了标准库functools中,需要先导入再使用,其官方解释如图所示: 从官方文档可知,该函数用法要点如下: 1)把一个双参数函数以累积 ...
- python reduce函数_Python reduce()函数的用法小结
reduce()函数也是Python内置的一个高阶函数. reduce() 格式: reduce (func, seq[, init()]) reduce()函数即为化简函数,它的执行过程为:每一次迭 ...
- reduce函数的用法
首先看reduce函数的官方解释(python2): reduce(...)reduce(function, sequence[, initial]) -> valueApply a funct ...
- python中reduce函数用法_一文读懂reduce函数
Python中的reduce函数是经常和map,filter一起被提到的函数,但是reduce的工作原理却不是那么直观,我们这里就来详细讲解一下这个函数. 首先先来看一下reduce函数的用法 imp ...
- Python使用reduce()函数计算多个集合的并集与交集
问题比较简单,直接上代码了,关键是标准库functools中reduce()函数的用法,当然其中的函数intersect和union可以使用lambda表达式进行替换,大家可以尝试着写一写. 温馨提示 ...
- map函数、filer函数、reduce函数的用法和区别
Map函数 map函数的用法如下: def add_one(x):return x+1#使用普通函数 v1 = map(add_one,[1,2,3]) v1 = list(v1) print(v1) ...
- pythonpr函数_python reduce()函数
reduce()函数 reduce()函数也是Python内置的一个高阶函数.reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传 ...
- python里apply用法_Python apply函数的用法
Python apply函数的用法 发布于 2014-08-07 21:02:24 | 674 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对象.解释型计 ...
最新文章
- 3.8 激活函数的导数-深度学习-Stanford吴恩达教授
- 从一个实际的例子出发,谈谈SAP Commerce Cloud电商云的UI自定义开发
- 【渝粤题库】国家开放大学2021春3924★汽车电器设备构造与检修题目
- 信息学奥赛一本通 1126:矩阵转置 | OpenJudge NOI 1.8 10:矩阵转置
- 【Emit基础】如何发射foreach代码?
- HDU2564 词组缩写【文本】
- 常用编码软件简单使用记录 2 : 非自主编码器
- Tensorflow从开始到放弃(技术篇)
- 回溯法、动态规划法——牛妹的蛋糕
- SPFA算法模板(刘汝佳版)--Wormholes POJ - 3259
- 麻省理工学院公开课:算法导论
- 共享汽车违章难处理 车企用定位模块来解决
- 小米手机显示流量数据连接到服务器,小米手机流量总不稳定,这三项设置可能你会用到...
- .NET Framework各个版本(3.5 - 4.0)
- C语言程序设计——结构体
- 人工智能的就业方向有哪些?
- 论文笔记-ORB-SLAM2-双目与rgbd相机跟单目情况的区别
- 首次曝光!唯一全域最高等级背后的阿里云云原生安全全景图
- 2017年香港家庭用品展览会会刊(参展商名录)
- (附源码)Springboot校园二手交易平台小程序 毕业设计191637
热门文章
- Fortran(X)概述
- 并发编程含义比较广泛,包含多线程编程、多进程编程及分布式程序等 目录 1. “共享内存系统”,消息传递系统”。	1 1.1. 共享模式 多进程 多线程	1 1.2. Actor消息模式 事件驱动	2
- CA6140车床法兰盘零件机械加工工艺规程及钻3-11 孔工序专用夹具设计
- 华为交换机配置接口安全
- 2021牛客寒假算法基础集训营1 蒟弱补题日记
- 【社会调研】访谈个案案例分享
- linux安装WPS2019操作
- 洛谷 2887 USACO2007NOV 防晒霜Sunscreen 题解
- 【转载】Android开发时,那些相见恨晚的工具或网站!
- 【编程之外】从《海贼王》的视角走进BAT的世界