JavaScript forEach tutorial shows how to iterate over arrays in JavaScript. The tutorial provides numerous examples to demonstrate array iteration in JS.
last modified April 4, 2025
In this article we show how to iterate over arrays using the forEach method in JavaScript.
The forEach method executes a provided function once for each array element. It is a cleaner alternative to traditional for loops when working with arrays. The method does not return a value and cannot be chained.
Unlike map or filter, forEach is used for its side effects rather than transforming data. It provides a simple way to perform operations on each element without creating a new array.
The callback function passed to forEach receives three arguments: the current element, its index, and the array being traversed. Only the element value is required; other parameters are optional.
The following example demonstrates the basic usage of the forEach method.
main.js
const fruits = [‘apple’, ‘banana’, ‘cherry’];
fruits.forEach(function(fruit) { console.log(fruit); });
We create an array of fruits and use forEach to log each one. The callback function receives each element in turn. This is the simplest form of forEach usage.
$ node main.js apple banana cherry
The forEach callback can access the current element’s index.
main.js
const colors = [‘red’, ‘green’, ‘blue’];
colors.forEach(function(color, index) {
console.log(Color at position ${index} is ${color}
);
});
We log both the color and its index in the array. The second parameter of the callback function provides the current index. This is useful when you need to know the position of elements.
$ node main.js Color at position 0 is red Color at position 1 is green Color at position 2 is blue
forEach can be used to modify array elements in place.
main.js
const numbers = [1, 2, 3, 4]; numbers.forEach(function(num, index, arr) { arr[index] = num * 2; });
console.log(numbers);
We double each number in the array by accessing it through the array reference. The third parameter provides access to the original array. Note that we’re modifying the original array directly.
$ node main.js [ 2, 4, 6, 8 ]
Arrow functions provide a concise syntax for forEach callbacks.
main.js
const languages = [‘JavaScript’, ‘Python’, ‘Ruby’];
languages.forEach(lang => {
console.log(${lang} has ${lang.length} letters
);
});
We use an arrow function to log each language and its character count. Arrow functions are especially clean for simple operations. They inherit this from the surrounding context.
$ node main.js JavaScript has 10 letters Python has 6 letters Ruby has 4 letters
Unlike for loops, forEach cannot be broken with break.
main.js
const data = [1, 2, 3, 4, 5]; let sum = 0;
data.forEach(num => { if (sum >= 6) return; // Can’t break, but can skip sum += num; });
console.log(sum);
We demonstrate that forEach iterations cannot be stopped early. While return exits the current callback, it doesn’t stop the entire loop. For early termination, consider for…of or some.
$ node main.js 6
Array forEach - language reference
In this article we have demonstrated how to use the forEach() method to iterate over arrays in JavaScript.
My name is Jan Bodnar, and I am a passionate programmer with extensive programming experience. I have been writing programming articles since 2007. To date, I have authored over 1,400 articles and 8 e-books. I possess more than ten years of experience in teaching programming.