reduce方法详细使用
一、定义和用法
reduce()
方法对数组中的每个元素按序执行一个由您提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
previousValue
:上一次调用callbackFn
时的返回值。在第一次调用时,若指定了初始值initialValue
,其值则为initialValue
,否则为数组索引为 0 的元素array[0]
。currentValue
:数组中正在处理的元素。在第一次调用时,若指定了初始值initialValue
,其值则为数组索引为 0 的元素array[0]
,否则为array[1]
。currentIndex
:数组中正在处理的元素的索引。若指定了初始值initialValue
,则起始索引号为 0,否则从索引 1 起始。array
:用于遍历的数组。
求最大最小值:
let arr1 = [23,123,342,12];
let max = arr1.reduce((pre,cur,index,arr) => {
return pre > cur ? pre : cur
});
console.log(max,"==========")//342
统计一个单词出现的次数:
const arr = ["apple","orange","apple","orange","pear","orange"];
function getWordCnt(){
return arr.reduce(function(pre,cur){
pre[cur] = (pre[cur] + 1) || 1;
return pre;
},{});
}
console.log(getWordCnt());//{apple: 2, orange: 3, pear: 1}
数组去重:
const duplicatedsArr = [1, 5, 6, 5, 7, 1, 6, 8, 9, 7];
const removeDuplicatedArr = duplicatedsArr.reduce((accumulator, currentValue) => {
if(!accumulator.includes(currentValue)){
accumulator.push(currentValue);
}
return accumulator;
}, []);
console.log(removeDuplicatedArr);// [1, 5, 6, 7, 8, 9]
按属性分组对象:
const result = [
{subject: '物理', marks: 41},
{subject: '化学', marks: 59},
{subject: '高等数学', marks: 36},
{subject: '应用数学', marks: 90},
{subject: '英语', marks: 64},
];
let initialValue = {
pass: [],
fail: []
}
const groupedResult = result.reduce((accumulator, current) => {
(current.marks >= 50) ? accumulator.pass.push(current) : accumulator.fail.push(current);
return accumulator;
}, initialValue);
console.log(groupedResult.pass);
//[{ marks: 59, subject: "化学" },{ marks: 90, subject: "应用数学" },{ marks: 64, subject: "英语" }]
数组扁平化:
const twoDArr = [ [1,2], [3,4], [5,6], [7,8] , [9,10] ];
const oneDArr = twoDArr.reduce((accumulator, currentValue) => accumulator.concat(currentValue));
console.log(oneDArr);// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
reduce方法详细使用相关推荐
- Stream.reduce()用法详细解析
在学习这个函数的用法之前,我们要先知道这个函数参数的意义 基本使用 先举一个简单的例子: 算法题:Words 题目描述 每个句子由多个单词组成,句子中的每个单词的长度都可能不一样,我们假设每个单词的长 ...
- reduce方法 实现数组对象中 每三个属性相加 形成新数组
需求: 数据格式: 每三个时间点的count属性值相加,形成新的数组:[] // 原数组 aList const aList = [{ time: '2023-83-17 01:80:00', cou ...
- db2top详细使用方法_Py之PIL:Python的PIL库的简介、安装、使用方法详细攻略
Py之PIL:Python的PIL库的简介.安装.使用方法详细攻略 目录 PIL库的简介 PIL库的安装 PIL库的用方法 1.几何图形的绘制与文字的绘制 2.绘制图形的各种案例 PIL库的简介 PI ...
- JS进阶篇--JS数组reduce()方法详解及高级技巧
基本概念 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被 ...
- python本地读csv文件_python读写csv文件方法详细总结
python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来. 在编写python程序的时候需要csv模块或者pandas模块,其中csv ...
- js的parseInt() map(),reduce()方法详解
parseInt(string,radius)接收两个参数, string(必选)如果接受的是'abc',纯字符串,返回NaN,要是'123'会转化为123,要是'abc123'会转化为123,rad ...
- 数组的reduce方法
reduce方法有两个参数,第一个参数是操作数组项的函数:第二个参数则是传入的初始值,reduce最常用的方法是叠加,以下例子可以看出,reduce函数根据初始值0,不断的叠加数组项: var ite ...
- VM:Vmware简介、安装、使用方法详细攻略
VM:Vmware简介.安装.使用方法详细攻略 目录 VM简介 VM下载 VM安装 许可证激活密钥 VM使用方法 1.在VMware虚拟机里创建第一个Win10系统 2.VM:如何向vmware虚拟机 ...
- Python之Pandas:pandas.DataFrame.to_csv函数的简介、具体案例、使用方法详细攻略
Python之Pandas:pandas.DataFrame.to_csv函数的简介.具体案例.使用方法详细攻略 目录 pandas.DataFrame.to_csv函数的简介 pandas.to_c ...
最新文章
- 如何学习iphone游戏开发
- python动态图-不就是用Python做个动态图吗?看招
- html设计网页技巧,网页设计技巧:网页表格设计技巧总结
- ubuntu iptables设置
- CentOS系统安装FTP服务器
- EdrawMax Crack,多合一的图表应用程序
- 【OpenCV】 300行写出全能扫描王
- 英语名言警句100句
- ubuntu安装独显驱动(R7000P RTX2060)
- 谷歌浏览器打开金格在线编辑插件
- 1.1 计算机语言发展史以及未来方向
- BUUCTF-RSA学习(一)
- TinyXML-2解析XML数据
- input的type属性值
- Linux服务器中Ebury Trojan病毒记
- matlab兼职可以做什么的,我开始做兼职了
- 解决CustomValidator控件在Wizard控件验证失效果问题
- 万能播放器:暴风影音4大使用设置技巧
- 利用C 进行AutoCAD的二次开发
- 目录 -- Vue.js 3.0 企业级管理后台开发实战 基于Element Plus