reduce 方法

本文介绍了在使用`array.reduce`方法计算数组元素对象的某个属性总和时,针对数组长度大于1、等于1以及小于2的情况进行分析。当长度大于1时计算正常,等于1时直接返回元素,而长度小于2时reduce不适用。为了解决这个问题,文章建议使用`array.map`作为优化方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 array.reduce 方法计算 数组元素 对象的某个属性的总和时,存在一些问题

需要计算 数组元素的某个属性值的总和时,使用 array.reduce 计算时,当数组长度 大于 1 时,不存在问题;
数组样例: [{a: 1, b: 9}, {a: 2, b: 5}]

数组长度 大于 1时,计算正常

代码样例:

var tempArr = [{a: 1,b: 9},{a: 2,b: 5}];
var total = tempArr.reduce((pre, cur) => pre.a + cur.a);
console.log('total',total); // 3

长度 等于 1 时,直接返回元素

代码样例:

var tempArr = [{a: 1,b: 9}];
var total = tempArr.reduce((pre, cur) => pre.a + cur.a);
console.log('total',total); // { a: 1, b: 9 }

若 数组长度 小于 2 时, array.reduce 不满足

优化 使用 array.map

故使用改用 array.map 方法

var tempArr = [{a: 1,b: 9},{a: 2,b: 5}];
var total = 0
tempArr.map(cur => total += cur.a)
console.log('total',total); // 3



注:

  1. 使用array.reduce 时, 数组长度 不能等于 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值