平均数组列数

时间:2015-06-08 14:21:08

标签: javascript arrays

好的我开始时我会吮吸数学,这让我头晕目眩,所以请原谅我,如果我只是愚蠢的话。哈哈

我有一个或多个数组看起来像这样,只有更多的数据。

[
 [3,4,6],
 [4,7,9],
 [3,8,9],
 [7,3,9]
]

因为它有太多的数据,我需要将这些值平均放到图表上。图表上的大约600个图表不会很有趣哈哈

但我不想平均我需要的所有阵列的平均值。像平均3,4,3,7然后等。那有意义吗?

我已经有了一个能够平均数组的函数,但是我的想法无法解决这个问题。

average: function() {
            var cnt, tot, i;
            cnt = arguments.length;
            tot = i = 0;
            while (i < cnt) tot+= arguments[i++];
            return tot / cnt;
        },

任何帮助都将受到赞赏,并将阻止我将计算机扔出窗外。 :)

2 个答案:

答案 0 :(得分:3)

var twoDimArr = [
  [3, 4, 6],
  [4, 7, 9],
  [3, 8, 9],
  [7, 3, 9]
];
for (var i = 0; i < twoDimArr[0].length; i++) {
  var sum = 0;
  for (var j = 0; j < twoDimArr.length; j++) {
    sum += twoDimArr[j][i];
  }
  var avg = sum / twoDimArr.length;
  console.log(avg);
}

答案 1 :(得分:0)

数组格式错误。但那没关系。这可以通过循环来修复。此代码循环遍历它们并存储每个代码的总和,计数和平均值。

    <html>
<head>
<script>
// sample data
var samarr = [[1,2,3],[3,7,9],[2,8,4],[6,2,2],[9,1,5]];
// new array that holds total for each column (0,1,2); in each I am storing 3 values (sum,count, avg).
var newarray = [[0,0,0],[0,0,0],[0,0,0]];


//for each array in sample data...
for(i = 0; i < samarr.length; i++){
    //for each element in the array
    for(j=0; j<samarr[i].length; j++){
        //put the data in the new array
        //this keeps a rolling value of the sum
        newarray[j][0] += samarr[i][j];
        //this keeps a rolling value of the number of elements
        newarray[j][1]++;
        //this keeps a rolling value of the average
        newarray[j][2] = newarray[j][0]/newarray[j][1];
    }
}

//This dumps the new array to an alert box. ;-)
alert(newarray);
</script
</head>
<body>


</body>
</html>