基本用法
reduce(function(total, currentValue, currentIndex, arr), initialValue)
注意点&小技巧
以下每条都是踩了无数坑总结的血泪史
currentValue
为遍历时的当前值,注意原始数据格式
的处理- 无法确定数组长度时,填好
initialValue
初始值,在回调中处理好意外数值、格式 - 遍历前,可以考虑使用
filter
、map
等处理原始数组,数据流动会更加清晰,便于维护 数组的高阶函数确实好用,但for才是正道
demo
以下demo只是简单的思路,实际开发中需要自己写好测试用例
const arr = [1, { value: 1 }, null, undefined]
const total = arr
// 过滤掉一些非法值,提升遍历效率
.filter(item => item)
// 全部映射为数字,降低reduce的处理难度
.map(item => item?.value || item)
// 考虑初始值、一些精度、数值越界等的处理即可
.reduce((total, currentValue) => total + currentValue, 0)
后言
最近帮朋友初创,体会到一个公司在各个生命周期运行的不易,也是很久没写技术博客了,
闲下来时总想稍微补一些短板,计算机基础,现代史相关的一点点皮毛,俗称的吃着碗里盯着锅里,总有点不务正业的罪恶感,
ps:现在还是不敢把机拆了,每每有人问,我还是只能愧疚地说:我确实不会修电脑