如何使用JavaScript/jQuery计算多对象中同名变量的平均值?
计算数组对象中属性的平均值(优雅实现)
嘿,很高兴你把这个问题分享出来——确实,用更优雅的方式计算数组对象中某个属性的平均值,能让代码更简洁易读。这里有个很符合现代JavaScript风格的实现方案:
核心思路
利用Array.prototype.reduce()快速累加所有this_value的总和,再除以数组长度;同时要处理数组为空的边界情况,避免出现除以0的错误。
代码实现
const original_array = [ { this_value:5 }, { this_value:10 }, { this_value:2 } ]; // 分步实现,可读性更强 const totalSum = original_array.reduce((accumulator, currentItem) => { return accumulator + currentItem.this_value; }, 0); // 初始值设为0,确保空数组时累加结果为0 const averageValue = original_array.length ? totalSum / original_array.length : 0; console.log(averageValue); // 输出:5.666666666666667
如果追求极致简洁,也可以写成一行:
const averageValue = original_array.length ? original_array.reduce((s, i) => s + i.this_value, 0) / original_array.length : 0;
为什么这是优雅的实现?
- 声明式编程:用
reduce替代手动for循环,代码意图更清晰,不需要关心循环的细节 - 边界处理:提前考虑空数组的情况,避免运行时错误
- 简洁性:用最少的代码完成需求,同时保持可读性
内容的提问来源于stack exchange,提问作者beepingbopping
相关产品推荐
相关产品推荐

