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

JavaScript数组内数值求平均及3组答案对应值生成8个平均值

嘿,这两个计算需求不难,我给你写好代码并解释清楚,直接能用:

1. 计算单个数组的平均值

这个是基础操作,我写了个通用函数,还加了数值校验,避免遇到非数字或者空数组时出问题:

function calculateArrayAverage(arr) {
  // 先过滤掉非有效数值,防止NaN搞砸计算
  const validNumbers = arr.filter(item => typeof item === 'number' && !isNaN(item));
  // 空数组的话返回0,你也可以改成返回null或者抛出错误,看你需求
  if (validNumbers.length === 0) return 0;
  // 求和再除以元素个数
  const total = validNumbers.reduce((accumulator, current) => accumulator + current, 0);
  return total / validNumbers.length;
}

// 测试一下
const sampleArray = [5, 10, 15, 20];
console.log(calculateArrayAverage(sampleArray)); // 输出12.5
2. 3组对应位置数值求平均(得到8个结果)

假设你的3组数据都是长度为8的数组,我们直接遍历每个索引位置,把三组对应位置的数取出来求平均就行,同样加了校验逻辑:

function calculateGroupedPositionAverages(group1, group2, group3) {
  // 先检查三组数据是不是都有8个元素
  if (!(group1.length === 8 && group2.length === 8 && group3.length === 8)) {
    throw new Error('每组数据必须包含8个数值哦!');
  }
  
  const averagedResults = [];
  for (let i = 0; i < 8; i++) {
    // 取出当前位置的三个数,过滤掉无效数值
    const currentNums = [group1[i], group2[i], group3[i]].filter(num => typeof num === 'number' && !isNaN(num));
    // 计算当前位置的平均值,没有有效数就返回0
    const avg = currentNums.length === 0 ? 0 : currentNums.reduce((a, b) => a + b, 0) / currentNums.length;
    averagedResults.push(avg);
  }
  
  return averagedResults;
}

// 示例用法
const groupX = [10, 20, 30, 40, 50, 60, 70, 80];
const groupY = [15, 25, 35, 45, 55, 65, 75, 85];
const groupZ = [20, 30, 40, 50, 60, 70, 80, 90];
console.log(calculateGroupedPositionAverages(groupX, groupY, groupZ));
// 输出: [15, 25, 35, 45, 55, 65, 75, 85]

如果你的3组数据结构不是这样(比如是嵌套的二维数组),可以告诉我具体结构,我再调整代码~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:07:53