JS中的reduce

基本用法

reduce(function(total, currentValue, currentIndex, arr), initialValue)

注意点&小技巧

以下每条都是踩了无数坑总结的血泪史

  1. currentValue为遍历时的当前值,注意原始数据格式的处理
  2. 无法确定数组长度时,填好initialValue初始值,在回调中处理好意外数值、格式
  3. 遍历前,可以考虑使用filtermap等处理原始数组,数据流动会更加清晰,便于维护
  4. 数组的高阶函数确实好用,但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:现在还是不敢把机拆了,每每有人问,我还是只能愧疚地说:我确实不会修电脑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值