首页 > 解决方案 > 在不同数字的数组中查找平均值

问题描述

我觉得我的标题表达得不是很好,如果你理解我的问题,有人可以纠正它。

我有一个数组

arr = [1,2,3,4,5,
       6,7,8,9,0,
       3,4,7,2,1,
       4,6,1,2,3,
       5,6,8,9,3
       2,3,4,5,6
      ]

我想做几件事

  1. 将其拆分为大小为 5 的块
  2. 计算块数。在这种情况下,它应该是 6 个块。
  3. 计算每个位置的所有块的数量之和,然后除以块的总数。在这种情况下,

    (1+6+3+4+5+2)/6, (2+7+4+6+6+3)/6, ..., (5+0+1+3+3+6)/6

  4. 以数组形式返回结果

    var result = [3.5, 4.66, ..., 3]

我有这个想法,但不知道如何实现它。

谢谢

标签: javascriptarrayssorting

解决方案


我相信这段代码可以完成你想要的。

function averageValues (arr) {
    var chunks = Math.ceil(arr.length / 5); // find the number of chunks
    var sums = [0, 0, 0, 0, 0]; // keep a running tally
    for (var i = 0; i < arr.length; i ++) {
        sums[i % 5] += arr[i]; // add each element to the proper part of the sum
    }
    for (var i = 0; i < sums.length; i ++) {
        sums[i] /= chunks; // divide each part of the sum by the number of chunks
    }
    return sums;
}

推荐阅读