Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

347
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!