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

如何对数组中对象的属性值求和?(附JavaScript示例代码)

用while循环实现对象数组价格求和

没问题,我来帮你补全这段代码!要遍历对象数组并完成价格求和,你只需要给while循环加上索引变量和终止条件,然后在循环里访问每个对象的price属性累加就行。

补全后的完整代码

var total = 0;
var phones = [
  { name: 'Apple Iphone', price: 220000, provider: { country: 'HU', name: 'Vodafone' } },
  { name: 'Samsung Galaxy S10+', price: 340000, provider: { country: 'AUT', name: 'Telekom' } },
  { name: 'Huawei P30', price: 260000, provider: { country: 'GER', name: 'Vodafone' } }
];
// 初始化索引变量,用来跟踪遍历位置
let i = 0;
// 循环条件:只要索引还没到数组末尾就继续
while (i < phones.length) {
  // 累加当前对象的price值到total
  total += phones[i].price;
  // 索引自增,避免死循环
  i++;
}
console.log(total); // 输出结果:820000

代码细节解释

  • 先声明索引变量i并初始化为0,用来标记当前遍历到数组的第几个元素
  • while (i < phones.length)是循环的终止逻辑:当索引超出数组最后一个元素的位置时,自动停止循环
  • phones[i].price是核心:通过索引拿到数组里的对象,再用.访问它的price属性,把值累加到total里
  • 每次循环结束后执行i++,让索引往后移动一位,保证能遍历到所有元素

更简洁的替代方案:使用reduce方法

如果你想让代码更精简,JavaScript数组的reduce方法专门处理这种累加场景,一行代码就能完成求和:

var total = phones.reduce((accumulator, currentPhone) => accumulator + currentPhone.price, 0);
console.log(total); // 同样输出:820000

这里reduce的第一个参数是回调函数,负责把每个对象的price加到累加器里;第二个参数0是累加的初始值,确保从0开始计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 10:22:43