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

如何在JavaScript中计算矩阵各对应索引位置元素的平均值?

实现矩阵列平均值的简便方法

你完全不用手动写繁琐的循环来存列表、求和再计算平均值,JavaScript的数组高阶方法能让这个逻辑更简洁清晰。下面给你两种实用的实现方式:

方法1:先累加列和,再算平均值

通过reduce遍历矩阵的每一行,累加出每一列的总和,最后用总和除以矩阵的行数得到平均值:

const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

// 初始化和数组,长度等于矩阵列数,初始值全为0
const columnSums = matrix.reduce((sums, row) => {
  row.forEach((num, idx) => {
    sums[idx] += num;
  });
  return sums;
}, Array(matrix[0].length).fill(0));

// 计算每列的平均值
const columnAverages = columnSums.map(sum => sum / matrix.length);

console.log(columnAverages); // 输出 [4, 5, 6]

方法2:直接针对每列计算求和与平均

针对每个列索引,用reduce直接求和该列的所有元素,再除以行数,全程用map遍历列索引:

const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];

const columnAverages = matrix[0].map((_, colIdx) => {
  return matrix.reduce((sum, row) => sum + row[colIdx], 0) / matrix.length;
});

console.log(columnAverages); // 输出 [4, 5, 6]

这两种方法都避免了手动维护临时列表的繁琐,利用JS原生数组方法让逻辑更紧凑易读。如果你的矩阵存在行长度不一致的情况,可以额外加一行校验(比如检查所有行的长度是否等于第一行),但针对你给出的规则矩阵,这两种方法都能完美运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:13:15