我该如何计算多维数组中所有值的平均值?我已经写了一个函数来计算一维数组的平均值,但我不确定什么时候最好的方法是多于一维的。用JavaScript计算多维数组的整体平均值
例如,假设我们有以下几点:
var A = Array(3);
for (i=0; i<A.length; i++) {
A[i] = new Array(2);
for (j=0; j<A[i].length; j++) {
A[i][j] = i+j;
}
}
因此,A是一个2维数组,或3×2矩阵:
A = 0 1
1 2
2 3
所以我想找到所有值的平均值,在这种情况下将等于1.5。我想我需要创建一个新的所有值的一维数组,然后将其输入到平均值函数中。但是,我不确定当数组高度维度时(例如5x3x6x9),最简单的方法。
谢谢!
编辑
谢谢大家!我使用了你的建议,并使用我在其中一个使用reduce函数的附加链接中找到的代码展开了数组。我的平均函数现在是这样的:
function average(x) {
// Flatten multi-dimensional array
while (x[0] instanceof Array) {
x = x.reduce(function(a, b) { return a.concat(b); });
}
// Calculate average
return x.reduce(function(a, b) { return a + b; })/x.length;
}
你必须定义预期的逻辑。你将如何在数学任务中实现这个功能? –