在 js 中使用 reduce
最编程
2024-03-15 17:17:58
...
reduce的介绍
1.reduce和迭代方法(map、fliter、forEach)一样,会遍历数组;reduce()方法会遍历数组中的每一个元素,每遍历一次就会执行一次回调函数。当遍历完之后会将最后的结果返回出去。
2.reduce( )方法有两个参数,第一个参数是累加函数,第二个是函数的previousValue的初始值。
reduce的基本用法
列表的求和:
const arr=[1,2,3,4,5] const newarr=arr.reduce((previousValue,current)=>{ console.log(previousValue+'-----'+current); //结果为: //1-----2 //3-----3 //6-----4 //10-----5 return previousValue + current // 求和运用 }); console.log(newarr); //输出 15
列表的求积:
const arr=[1,2,3,4,5] const newarr2=arr.reduce(function(previousValue,current){ console.log(previousValue+'-----'+current) //结果为: //1-----2 //2-----3 //6-----4 //24-----5 return previousValue * current // // 求积运用 }); console.log(newarr2); //输出 120
上面的代码累加函数都是从列表的第一位开始的
我们可以设置累加函数的默认值,例如:
const arr=[1,2,3,4,5] const newarr=arr.reduce((previousValue,current)=>{ console.log(previousValue+'-----'+current); //结果为: //2-----1 //3-----2 //5-----3 //8-----4 //12-----5 return previousValue + current // 求和运用 },2); console.log(newarr); //输出 17
reduce计算数组中元素出现的次数
let arr1 = ['name','age','long','short','long','name','name'] // 计算数组中元素出现的次数 let arrResult = arr1.reduce((pre,cur) =>{ if(cur in pre){ pre[cur]++ //这里的意思是如果pre里面有这个属性就加一 }else{ pre[cur] = 1 // 这里意思是往pre对象中如果没有这个属性,就把这个属性赋值为1 } return pre },{}); console.log(arrResult) //输出{name: 3, age: 1, long: 2, short: 1}
推荐阅读
-
使用 POI 库在 Android 中读写 Excel (.xlsx/.xls) 文件
-
在 keil (mdk) 中,在编译时删除未使用的函数,以减少代码量。
-
位、字节、WORD、DWORD 的区别和联系 - Unicode 和 ANSI 的区别就像输入法中 "全宽 "和 "半宽 "的区别一样。 由于不同的 ANSI 编码有不同的标准(不同的字符集),对于给定的多字节字符串,我们必须知道它使用的是哪种字符集,才能知道它包含哪些 "字符"。对于 UNICODE 字符串来说,无论环境如何,它所代表的 "字符 "内容始终是相同的。Unicode 有一个统一的标准,定义了世界上大多数字符的编码,因此拉丁文、数字、简体中文、繁体中文和日文都可以存储在一个编码中。统一码是一个统一的标准,定义了世界上大多数字符的编码。 比特(Bit)和字节(Byte)的区别:例如USB2.0 标准接口的传输速率为 480Mbps,有一些人误认为是每秒 480 兆比特,同样网络带宽为 2MB,就容易误认为是每秒 2 兆比特。其实,480Mbps 应该是 480 兆比特/秒或 480 兆字节/秒,它等于 "60 兆字节/秒";同样,2MB,应该是 256 兆字节/秒。 Bit 和 Byte 译为 "比特",都是数据计量单位,比特="位 "或 "比特"。 Byte = 字节,即 1byte = 8bits,两者的换算关系为 1:8。 Mbps = mega bits per second(兆位/秒)是速率单位,因此 2M 带宽应为 2 兆位/秒,即 2MBps。MB = 兆字节(Megabytes,兆字节)是单位量,1MB/S(兆字节/秒)= 8MBPS(兆字节/秒)。 通常所说的硬盘容量是指 40GB、80GB、100GB,其中的 B 是指 Byte 也称为 "字节"。 1 KB=1024 字节 1 MB=1024 KB=1024*1024 字节 1 GB=1024 MB=1024*1024*1024 字节 例如,以前所谓的 56KB MODEM 转换过来的 56KBps 除以 8 就是 7Kbyte,所以真正从网上下载文件存在硬盘上的速度也是每秒 7Kbyte;也就是说,用 B 表示传输速度一般指 Bit;用 B 表示容量一般指 Byte。比特、字节、WORD、DWORD 的本质。
-
使用 CURL 在 php 中构建 POST 请求
-
JS,如果没有方法的话。(在不使用任何 JS 方法的情况下实现圆形方法)
-
贪婪算法在 Python、JavaScript、Java、C++ 和 C# 中的多种实现及其在硬币变化、分数骑士、活动选择和使用哈夫曼编码的最小生成树问题中的应用实例
-
问:如何使用 openpyxl 在 Excel 表中插入数组公式?
-
Python 使用 OpenPyXl 在 excel 表中设置单元格大小 openpyxl 修改 excel 单元格
-
问 在连体架构中,梯度如何飞回网络?即使使用不同的模型,所有 CNN 模型的权重也是相同的。
-
在 win 环境下使用 cv2.imshow 报告 Python 中的 OpenCV 错误解决方案-1.