DEV Community

Cover image for Find the Average of a Given Array of Numbers
Dooder
Dooder

Posted on • Edited on

2 2

Find the Average of a Given Array of Numbers

Find the average of all numbers in a given array

Let's say we wanted to write a function that calculates the average of all grades (including yours). We can do this in many different ways in JavaScript, but in this demo I will be showing you how to find the average using Higher-Order Functions and the "for" loop.

forEach loop

The forEach() method executes a provided function once for each array element.

const yourGrade = 88;
let classGrades = [
    87, 68, 94, 100, 83,
    78, 85, 91, 76, 87
];

// push `yourGrade` to the end of classGrades
classGrades.push(yourGrade);
console.log(classGrades);

function average(array) {
  // initialize value of `sum`
  let sum = 0;
  // capture the length of the array
  let arrayLength = array.length;
  // loop through the array via forEach
  array.forEach((grade) => {
    return (sum += grade);
  });
  // formula to calculate average: sum / arrayLength
  return Math.round(sum / arrayLength);
}
const avg = average(classGrades);
console.log(avg);
Enter fullscreen mode Exit fullscreen mode

for loop

The for() loop iterates a specified amount of times, and does "something" that many times.

const yourGrade = 88;
let classGrades = [
    87, 68, 94, 100, 83,
    78, 85, 91, 76, 87
];

console.log(classGrades);

function average(array) {
  // initialize value of `sum`
  let sum = 0;
  // capture the length of the array
  let arrayLength = array.length;
  // iterate over the array
  for (let i = 0; i < array.length; i++) {
    // add each element to the `sum`
    sum += array[i];
  }
  // formula to calculate average: sum / arrayLength
  /* since we are not pushing our grade to the array
   using `array.push()`, we need to do a little bit of algebra
   to add ourselves to the list */
  return Math.round((sum + yourGrade) / (arrayLength + 1));
}
const avg = average(classGrades);
console.log(avg);
Enter fullscreen mode Exit fullscreen mode

reduce

The reduce() method is quite similar to the forEach() method, but requires a lot less coding. :)

const yourGrade = 88;
let classGrades = [
    87, 68, 94, 100, 83,
    78, 85, 91, 76, 87
];

// push `yourGrade` to the end of classGrades
classGrades.push(yourGrade);
console.log(classGrades);

function average(array) {
    // action to do for every value
  const avg =
    array.reduce((previousValue, currentValue) =>
    previousValue + currentValue) / array.length;
  return Math.round(avg);
}
const avg = average(classGrades);
console.log(avg);
Enter fullscreen mode Exit fullscreen mode

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs