You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript新手求助:如何用非for循环计算对象数组年龄总和

对象数组求和的最优解法:使用reduce

针对你需要计算对象数组中用户年龄总和的需求,最适合的方法是使用Array.prototype.reduce()——这是JS数组专门用于汇总/累加操作的方法,完全不需要额外的外部变量,也不会生成多余的中间数组。

具体实现代码

const users=[
  {firstName:"john",lastName:"Biden",age:26},
  {firstName:"jimmy",lastName:"cob",age:75},
  {firstName:"sam",lastName:"lewis",age:50},
  {firstName:"Ronald",lastName:"Mathew",age:26},  
];

const totalAge = users.reduce((accumulator, currentUser) => {
  return accumulator + currentUser.age;
}, 0); // 0是累加器的初始值

console.log(totalAge); // 输出177

简单解释

  • accumulator:就是我们的累加结果,一开始是传入的初始值0,每一轮循环会更新为新的总和。
  • currentUser:当前循环到的数组里的用户对象,直接取它的age属性加到累加器上即可。
  • 整个reduce方法会自动遍历完所有元素,最后返回最终的累加结果,不需要手动管理循环或者外部变量。

为什么不用你提到的其他方法?

  • 你说map会生成新数组,如果先用map提取所有age再求和(比如users.map(u => u.age).reduce((a,b)=>a+b,0)),也能实现,但会多生成一个只存年龄的中间数组,没必要。
  • forEach确实可以做,但需要像for循环那样声明外部变量存总和,代码不够简洁,也不如reduce语义化(reduce一看就知道是在做汇总操作)。

内容的提问来源于stack exchange,提问作者Abhijeet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 21:26:03