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

如何计算JavaScript对象中各属性数组的平均值?

计算JavaScript对象中各数组的平均值

方法一:基础遍历法

通过遍历对象属性键,逐个计算对应数组的总和与平均值,逻辑直观易懂:

let components = {
  co: [235, 465, 78],
  no: [409, 589, 98],
  nh3: [54, 76, 39]
};

const averages = {};

for (const key in components) {
  const arr = components[key];
  // 用reduce累加数组元素得到总和
  const total = arr.reduce((accumulator, current) => accumulator + current, 0);
  // 总和除以数组长度得到平均值
  averages[key] = total / arr.length;
}

console.log(averages);
// 输出:{ co: 259.3333333333333, no: 365.3333333333333, nh3: 56.333333333333336 }

方法二:函数式简洁写法

利用Object.entries和Object.fromEntries结合数组方法,用更紧凑的代码完成计算,贴合现代JavaScript风格:

let components = {
  co: [235, 465, 78],
  no: [409, 589, 98],
  nh3: [54, 76, 39]
};

const averages = Object.fromEntries(
  Object.entries(components).map(([key, arr]) => {
    const total = arr.reduce((acc, curr) => acc + curr, 0);
    return [key, total / arr.length];
  })
);

console.log(averages);

额外优化:处理边界情况

如果数组可能为空(避免除以0报错),或者需要格式化小数位数,可以调整逻辑:

const averages = {};

for (const key in components) {
  const arr = components[key];
  if (arr.length === 0) {
    averages[key] = 0; // 空数组默认值,可按需修改
    continue;
  }
  const total = arr.reduce((acc, curr) => acc + curr, 0);
  // 保留2位小数并转为数字类型
  averages[key] = Number((total / arr.length).toFixed(2));
}

console.log(averages);
// 输出:{ co: 259.33, no: 365.33, nh3: 56.33 }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:50:28