如何对数组中对象的属性值求和?(附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
相关产品推荐
相关产品推荐

