Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

348
Vistas
javascript : how to calculate an average in a nested array inside an array

How do I calcualte the overall average of an array like this: example array:

[[80, 90, 70], [70,80,60],[90,100,80]]

what I am trying right now

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;
  }
}

Thanks

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Calculate the total from all numbers. Divide it with length of total numbers.

Working Sample

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}`);

OR

Convert the two dimentional array to a linear structure using Array.flat and calculate its sum by looping with Array.reduce and divide by its length.

Working Sample

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}`);

about 4 years ago · Juan Pablo Isaza Denunciar

0

flatten the array, and then reduce over the elements adding them up, and then dividing by the length of the flattened array.

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);

about 4 years ago · Juan Pablo Isaza Denunciar

0

This would also work. Using flat and reduce.

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);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda