Как мне рассчитать среднее значение всех значений в многомерном массиве?Я написал функцию для вычисления среднего значения из одномерного массива, но я не уверен, какой метод лучше использовать, когда имеется более 1-мерного.
Например, допустим, у нас естьследующее:
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 - это двумерный массив или матрица 3x2:
A = 0 1
1 2
2 3
Поэтому я хотел бы найти среднее значение всех значений, котороев этом случае будет равно 1,5.Я предполагаю, что мне нужно создать новый одномерный массив всех значений, которые я мог бы затем добавить в свою функцию усреднения.Тем не менее, я не уверен, что самый простой способ сделать это, когда массив является многомерным (например, 5x3x6x9).
Спасибо!
EDIT
Спасибо всем!Я воспользовался вашим советом и сгладил массив, используя код, который я нашел в одной из прикрепленных ссылок, которая использует функцию 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;
}