从零开始学aardio笔记:reduce详解
条评论前言
做了个抓取网页表格数据的功能,师兄推荐了reduce
这个写法,不会,不懂,没接触过,做个笔记。
reduce
是一个经典的无循环函数,在js,python这些语言中都有相同的函数,
aardio中 reduce
函数的设计,基本与js的用法规则一样,例如空数组不指定初始值报错,指定初始值不跳过第一个数组成员,不指定初始值跳过第一个数组成员(用第一个数组成员作为初始值),初始值可以是任意对象,这些规则全都一样,参数的位置用法都一样。
基本用法 Function
基本用法 Function ,结构:
1 | 返回值 = reduce(数组,回调函数(结果,当前成员,当前索引),结果初始值) |
用法:
1 | 返回值 = reduce(要操作的数组 |
用法示例
用法1,数组值求和:
1 | import console; |
用法2,将数组中所有值转换为字符串
1 | import console; |
用法3,筛选数组中的值
1 | import console; |
摘抄网友提炼的重点「待消化o(╯□╰)o」
- reduce 是一个经典的无循环函数。
- 指定【结果初始值】时,回调函数 function 的【结果】=【结果初始值】,数组成员从头到尾逐个遍历,【数组当前成员值】从第1个开始,【数组当前索引】从1开始。
- 不指定【参考值的初始值】时,回调函数 function 的【结果】= 【数组的第1个成员值】。顺理成章的,数组成员就不能再从第个开始,而是跳过第1个,从第2个开始遍历。【数组当前成员值】从第2个开始,【数组当前索引】从2开始。所以,在此情况下,如果要操作的数组为空数组{}时,不指定初始值则会报错。因为空数组不存在“第1个成员值”,也就无法给“结果”赋值。
- 初始值可以是任意对象,如: 123,{} ,“abc” 等。
- 最后一次赋值的【结果】,将作为 reduce 的最终返回值。
数组 | 指定结果初始值 | 回调函数 function() | 返回值(参考值) |
空数组 | 必须指定 | 不执行 | 结果 = 结果初始值 |
1个成员的数组 | 如果指定初始值 | 执行1次 | 结果 = 本次结果 |
如果指定初始值 | 执行1次 | 结果 = 本次结果 | |
2个以上成员的数组 | 皆可 | 至少执行1次 | 结果 = 最后一个本次结果 |
参考文档
本文标题:从零开始学aardio笔记:reduce详解
文章作者:凹凸曼
发布时间:2020-12-09
最后更新:2020-12-09
原始链接:https://sobaigu.com/aardio-notes-04.html
版权声明:转载请务必保留本文链接和注明内容来源,并自负版权等法律责任。