JavaScript Array Iteration

By | August 23, 2022

Array iteration methods operate on every array item.

JavaScript Array forEach()

The forEach() method calls a function (a callback function) once for each array element.

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.forEach()</h2>
<p>Calls a function once for each array element.</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let txt = "";
numbers.forEach(myFunction);
document.getElementById("demo").innerHTML = txt;
function myFunction(value, index, array) {
  txt += value + "<br>"; 
}
</script>
</body>
</html>

Result:

JavaScript Array.forEach()

Calls a function once for each array element.

45
4
9
16
25

Note that the function takes 3 arguments:

  • The item value
  • The item index
  • The array itself

The example above uses only the value parameter. The example can be rewritten to:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.forEach()</h2>
<p>Calls a function once for each array element.</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let txt = "";
numbers.forEach(myFunction);
document.getElementById("demo").innerHTML = txt;
function myFunction(value) {
  txt += value + "<br>"; 
}
</script>
</body>
</html>

Result:

JavaScript Array.forEach()

Calls a function once for each array element.

45
4
9
16
25

JavaScript Array map()

The map() method creates a new array by performing a function on each array element.

The map() method does not execute the function for array elements without values.

The map() method does not change the original array.

This example multiplies each array value by 2:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.map()</h2>
<p>Creates a new array by performing a function on each array element.</p>
<p id="demo"></p>
<script>
const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(myFunction);
document.getElementById("demo").innerHTML = numbers2;
function myFunction(value, index, array) {
  return value * 2;
}
</script>
</body>
</html>

Result:

JavaScript Array.map()

Creates a new array by performing a function on each array element.

90,8,18,32,50

Note that the function takes 3 arguments:

  • The item value
  • The item index
  • The array itself

When a callback function uses only the value parameter, the index and array parameters can be omitted:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.map()</h2>
<p>Creates a new array by performing a function on each array element.</p>
<p id="demo"></p>
<script>
const numbers1 = [45, 4, 9, 16, 25];
const numbers2 = numbers1.map(myFunction);
document.getElementById("demo").innerHTML = numbers2;
function myFunction(value) {
  return value * 2;
}
</script>
</body>
</html>

Result:

JavaScript Array.map()

Creates a new array by performing a function on each array element.

90,8,18,32,50

JavaScript Array filter()

The filter() method creates a new array with array elements that passes a test.

This example creates a new array from elements with a value larger than 18:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.filter()</h2>
<p>Creates a new array with all array elements that passes a test.</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(myFunction);
document.getElementById("demo").innerHTML = over18;
function myFunction(value, index, array) {
  return value > 18;
}
</script>
</body>
</html>​

Result:

JavaScript Array.filter()

Creates a new array with all array elements that passes a test.

45,25

Note that the function takes 3 arguments:

  • The item value
  • The item index
  • The array itself

In the example above, the callback function does not use the index and array parameters, so they can be omitted:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.filter()</h2>
<p>Creates a new array with all array elements that passes a test.</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
const over18 = numbers.filter(myFunction);
document.getElementById("demo").innerHTML = over18;
function myFunction(value) {
  return value > 18;
}
</script>
</body>
</html>

Result:

JavaScript Array.filter()

Creates a new array with all array elements that passes a test.

45,25

JavaScript Array reduce()

The reduce() method runs a function on each array element to produce (reduce it to) a single value.

The reduce() method works from left-to-right in the array. See also reduceRight().

The reduce() method does not reduce the original array.

This example finds the sum of all numbers in an array:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.reduce()</h2>
<p>This example finds the sum of all numbers in an array:</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction);
document.getElementById("demo").innerHTML = "The sum is " + sum;
function myFunction(total, value, index, array) {
  return total + value;
}
</script>
</body>
</html>

Result:

JavaScript Array.reduce()

This example finds the sum of all numbers in an array:

The sum is 99

Note that the function takes 4 arguments:

  • The total (the initial value / previously returned value)
  • The item value
  • The item index
  • The array itself

The example above does not use the index and array parameters. It can be rewritten to:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.reduce()</h2>
<p>This example finds the sum of all numbers in an array:</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction);
document.getElementById("demo").innerHTML = "The sum is " + sum;
function myFunction(total, value) {
  return total + value;
}
</script>
</body>
</html>

Result:

JavaScript Array.reduce()

This example finds the sum of all numbers in an array:

The sum is 99

The reduce() method can accept an initial value:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.reduce()</h2>
<p>This example finds the sum of all numbers in an array:</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduce(myFunction, 100);
document.getElementById("demo").innerHTML = "The sum is " + sum;
function myFunction(total, value) {
  return total + value;
}
</script>
</body>
</html>

Result:

JavaScript Array.reduce()

This example finds the sum of all numbers in an array:

The sum is 199

JavaScript Array reduceRight()

The reduceRight() method runs a function on each array element to produce (reduce it to) a single value.

The reduceRight() works from right-to-left in the array. See also reduce().

The reduceRight() method does not reduce the original array.

This example finds the sum of all numbers in an array:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.reduceRight()</h2>
<p>This example finds the sum of all numbers in an array:</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduceRight(myFunction);
document.getElementById("demo").innerHTML = "The sum is " + sum;
function myFunction(total, value, index, array) {
  return total + value;
}
</script>
</body>
</html>

Result:

JavaScript Array.reduceRight()

This example finds the sum of all numbers in an array:

The sum is 99

Note that the function takes 4 arguments:

  • The total (the initial value / previously returned value)
  • The item value
  • The item index
  • The array itself

The example above does not use the index and array parameters. It can be rewritten to:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.reduceRight()</h2>
<p>This example finds the sum of all numbers in an array:</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let sum = numbers.reduceRight(myFunction);
document.getElementById("demo").innerHTML = "The sum is " + sum;
function myFunction(total, value) {
  return total + value;
}
</script>
</body>
</html>

Result:

JavaScript Array.reduceRight()

This example finds the sum of all numbers in an array:

The sum is 99

JavaScript Array every()

The every() method check if all array values pass a test.

This example check if all array values are larger than 18:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.every()</h2>
<p>The every() method checks if all array values pass a test.</p>
<p id="demo"></p>​
<script>
const numbers = [45, 4, 9, 16, 25];
let allOver18 = numbers.every(myFunction);
​document.getElementById("demo").innerHTML = "All over 18 is " + allOver18;
function myFunction(value, index, array) {
  return value > 18;
}
</script>
</body>
</html>

Result:

JavaScript Array.every()

The every() method checks if all array values pass a test.

All over 18 is false

Note that the function takes 3 arguments:

  • The item value
  • The item index
  • The array itself

When a callback function uses the first parameter only (value), the other parameters can be omitted:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.every()</h2>
<p>The every() method checks if all array values pass a test.</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let allOver18 = numbers.every(myFunction);
document.getElementById("demo").innerHTML = "All over 18 is " + allOver18;
function myFunction(value) {
  return value > 18;
}
</script>
</body>
</html>

Result:

JavaScript Array.every()

The every() method checks if all array values pass a test.

All over 18 is false

JavaScript Array some()

The some() method check if some array values pass a test.

This example check if some array values are larger than 18:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.some()</h2>
<p>The some() method checks if some array values pass a test.</p>
<p id="demo"></p>
<script>
const numbers = [45, 4, 9, 16, 25];
let someOver18 = numbers.some(myFunction);
document.getElementById("demo").innerHTML = "Some over 18 is " + someOver18;
function myFunction(value, index, array) {
  return value > 18;
}
</script>
</body>
</html>

Result:

JavaScript Array.some()

The some() method checks if some array values pass a test.

Some over 18 is true

Note that the function takes 3 arguments:

  • The item value
  • The item index
  • The array itself

JavaScript Array indexOf()

The indexOf() method searches an array for an element value and returns its position.

Note: The first item has position 0, the second item has position 1, and so on.

Example

Search an array for the item “Apple”:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.indexOf()</h2>
<p id="demo"></p>
<script>
const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.indexOf("Apple") + 1;
document.getElementById("demo").innerHTML = "Apple is found in position " + position;
</script>
</body>
</html>

Result:

JavaScript Array.indexOf()

Apple is found in position 1

Syntax

array.indexOf(item, start)

itemRequired. The item to search for.
startOptional. Where to start the search. Negative values will start at the given position counting from the end, and search to the end.

Array.indexOf() returns -1 if the item is not found.

If the item is present more than once, it returns the position of the first occurrence.

JavaScript Array lastIndexOf()

Array.lastIndexOf() is the same as Array.indexOf(), but returns the position of the last occurrence of the specified element.

Example

Search an array for the item “Apple”:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.lastIndexOf()</h2>
<p id="demo"></p>
<script>
const fruits = ["Apple", "Orange", "Apple", "Mango"];
let position = fruits.lastIndexOf("Apple") + 1;
document.getElementById("demo").innerHTML = "Apple is found in position " + position;
</script>
</body>
</html>

Result:

JavaScript Array.lastIndexOf()

Apple is found in position 3

Syntax

array.lastIndexOf(item, start)

itemRequired. The item to search for
startOptional. Where to start the search. Negative values will start at the given position counting from the end, and search to the beginning

JavaScript Array find()

The find() method returns the value of the first array element that passes a test function.

This example finds (returns the value of) the first element that is larger than 18:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.find()</h2>
<p id="demo"></p>
<script>
const numbers = [4, 9, 16, 25, 29];
let first = numbers.find(myFunction);
document.getElementById("demo").innerHTML = "First number over 18 is " + first;
function myFunction(value, index, array) {
  return value > 18;
}
</script>
</body>
</html>

Result:

JavaScript Array.find()

First number over 18 is 25

Note that the function takes 3 arguments:

  • The item value
  • The item index
  • The array itself

Browser Support

find() is an ES6 feature (JavaScript 2015).

It is supported in all modern browsers:

ChromeEdgeFirefoxSafariOpera
YesYesYesYesYes

find() is not supported in Internet Explorer.

JavaScript Array findIndex()

The findIndex() method returns the index of the first array element that passes a test function.

This example finds the index of the first element that is larger than 18:

Example

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Array.findIndex()</h2>
<p id="demo"></p>
<script>
const numbers = [4, 9, 16, 25, 29];
document.getElementById("demo").innerHTML = "First number over 18 has index " + numbers.findIndex(myFunction);
function myFunction(value, index, array) {
  return value > 18;
}
</script>
</body>
</html>

Result:

JavaScript Array.findIndex()

First number over 18 has index 3

Note that the function takes 3 arguments:

  • The item value
  • The item index
  • The array itself

Browser Support

findIndex() is an ES6 feature (JavaScript 2015).

It is supported in all modern browsers:

ChromeEdgeFirefoxSafariOpera
YesYesYesYesYes

findIndex() is not supported in Internet Explorer.

JavaScript Array.from()

The Array.from() method returns an Array object from any object with a length property or any iterable object.

Example

Create an Array from a String:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Arrays</h2>
<p>The Array.from() method returns an Array object from any object with a length property or any iterable object.</p>
<p id="demo"></p>
<script>
const myArr = Array.from("ABCDEFG");
document.getElementById("demo").innerHTML = myArr;
</script>
<p>The Array.from() method is not supported in Internet Explorer.</p>
</body>
</html>

Result:

JavaScript Arrays

The Array.from() method returns an Array object from any object with a length property or any iterable object.

A,B,C,D,E,F,G

The Array.from() method is not supported in Internet Explorer.

Browser Support

from() is an ES6 feature (JavaScript 2015).

It is supported in all modern browsers:

ChromeEdgeFirefoxSafariOpera
YesYesYesYesYes

from() is not supported in Internet Explorer.

JavaScript Array Keys()

The Array.keys() method returns an Array Iterator object with the keys of an array.

Example

Create an Array Iterator object, containing the keys of the array:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Arrays</h2>
<p>The Array.keys() method returns an Array Iterator object with the keys of the array.</p>
<p id="demo"></p>
<script>
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const keys = fruits.keys();
let text = "";
for (let x of keys) {
  text += x + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
<p>Array.keys() is not supported in Internet Explorer.</p>
</body>
</html>

Result:

JavaScript Arrays

The Array.keys() method returns an Array Iterator object with the keys of the array.

0
1
2
3

Array.keys() is not supported in Internet Explorer.

Browser Support

keys() is an ES6 feature (JavaScript 2015).

It is supported in all modern browsers:

ChromeEdgeFirefoxSafariOpera
YesYesYesYesYes

keys() is not supported in Internet Explorer.

Array entries()

Example

Create an Array Iterator, and then iterate over the key/value pairs:

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>The entries() method</h2>
<p>entries() returns an Array Iterator object with key/value pairs:</p>
<p id="demo"></p>
<script>
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const f = fruits.entries();
for (let x of f) {
  document.getElementById("demo").innerHTML += x + "<br>";
}
</script>
<p>The entries() method is not supported in Internet Explorer 11 (or earlier).</p>
</body>
</html>

Result:

JavaScript Arrays

The entries() method

entries() returns an Array Iterator object with key/value pairs:

0,Banana
1,Orange
2,Apple
3,Mango

The entries() method is not supported in Internet Explorer 11 (or earlier).

The entries() method returns an Array Iterator object with key/value pairs:

[0, “Banana”]
[1, “Orange”]
[2, “Apple”]
[3, “Mango”]

The entries() method does not change the original array.

Browser Support

entries() is an ES6 feature (JavaScript 2015).

It is supported in all modern browsers:

ChromeEdgeFirefoxSafariOpera
YesYesYesYesYes

entries() is not supported in Internet Explorer.

JavaScript Array includes()

ECMAScript 2016 introduced Array.includes() to arrays. This allows us to check if an element is present in an array (including NaN, unlike indexOf).

Example

<!DOCTYPE html>
<html>
<body>
<h1>Array includes()</h1>
<p>Check if the fruit array contains "Mango":</p>
<p id="demo"></p>
<p><strong>Note:</strong> The includes method is not supported in Edge 13 (and earlier versions).</p>
<script>
const fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.includes("Mango");
</script>
</body>
</html>

Result:

Array includes()

Check if the fruit array contains “Mango”:

true

Note: The includes method is not supported in Edge 13 (and earlier versions).

Syntax

array.includes(search-item)

Array.includes() allows to check for NaN values. Unlike Array.indexOf().

Array.includes() is not supported in Internet Explorer and Edge 12/13.

The first browser versions with full support are:

Browser Support

includes() is an ECMAScript 2016 feature.

It is supported in all modern browsers:

ChromeEdgeFirefoxSafariOpera
YesYesYesYesYes

includes() is not supported in Internet Explorer.

Leave a Reply

Your email address will not be published. Required fields are marked *