¿Cómo calculo el promedio general de una matriz como esta: matriz de ejemplo:
[[80, 90, 70], [70,80,60],[90,100,80]]lo que estoy intentando ahora
for (let i = 0; i < grades.length; i++) { for (let y = 0; y < grades[i].length; y++) { lastTotalScore += grades[i[y]]; lastAverageScore = lastTotalScore / grades[i].length; overallTotalScore += lastAverageScore; overallAverageScore = overallTotalScore / grades.length; } }Gracias
Calcular el total de todos los números. Divídalo con la longitud de los números totales.
Muestra de trabajo
const grades = [[80, 90, 70], [70, 80, 60], [90, 100, 80]]; let lastTotalScore = 0; let length = 0; for (let i = 0; i < grades.length; i++) { length += grades[i].length; for (let y = 0; y < grades[i].length; y++) { lastTotalScore += grades[i][y]; } } console.log(`Average = ${lastTotalScore / length}`);O
Convierta la matriz bidimensional en una estructura lineal usando Array.flat y calcule su suma haciendo un bucle con Array.reduce y divida por su longitud.
Muestra de trabajo
const grades = [[80, 90, 70], [70, 80, 60], [90, 100, 80]]; const flatGrade = grades.flat(); const sum = flatGrade.reduce((acc, curr) => acc + curr, 0); console.log(`Average = ${sum / flatGrade.length}`);flatten la matriz y luego reduce los elementos sumándolos y luego dividiéndolos por la longitud de la matriz aplanada.
const arr = [ [80, 90, 70], [70, 80, 60], [90, 100, 80] ]; // Flatten the nested arrays const flat = arr.flat(); // `reduce` over the numbers, and then divide // by the number of elements in the array const avg = flat.reduce((acc, c) => { return acc + c; }, 0) / flat.length; console.log(avg);Esto también funcionaría. Uso plano y reducción .
const input = [ [80, 90, 70], [70, 80, 60], [90, 100, 80], ]; const { sum, count } = input.flat().reduce( (prev, curr) => { prev.sum += curr; prev.count += 1; return prev; }, { sum: 0, count: 0 } ); console.log(sum / count);