How to Return a Value From a forEach Loop

Jul 16, 2021

You can't make JavaScript's forEach() function return a custom value. Using return in a forEach() is equivalent to a continue in a conventional loop.

// Prints "2, 4"
[1, 2, 3, 4, 5].forEach(v => {
  if (v % 2 !== 0) {
    return;
  }
  console.log(v);
});

Variable

You can declare a variable before calling forEach() and set the value inside the loop;

let array = [1, 2, 3, 4, 5];
let max = 0;
array.forEach((element) => {
  if (element > max) {
    max = v;
  }
});
max; // 5

Using reduce()

JavaScript's reduce() function iterates over the array like forEach(), but reduce() returns the last value your callback returns.

let array = [1, 2, 3, 4, 5];
let initialMax = 0;
const max = array.reduce((element, max) => {
  if (element > max) {
    return element;
  }
  return max;
}, initialMax);
max; // 5

Did you find this tutorial useful? Say thanks by starring our repo on GitHub!

More Fundamentals Tutorials