How to convert a HTML NodeList to an array in JavaScript
In this tutorial, we are going to learn about two different ways to convert a nodelist to an array in JavaScript.
Consider, we have the following HTML markup with div
elements.
<div>Row 1</div>
<div>Row 1</div>
<div>Row 1</div>
Now, we are accessing the above elements in Javascript using document.querySelctorAll()
method.
const divs = document.querySelectorAll('div');
console.log(divs); // NodeList ['div', 'div', 'div']
The above method returns a NodeList
which looks like an array but it is not, so if we try to use array methods like splice(), slice(), forEach(), etc
returns an error.
Converting NodeList to an Array
To solve this problem, we can convert a NodeList
to an array by using the es6 spread operator (...)
.
Example:
const divs = document.querySelectorAll('div');
const divsArray = [...divs];
Similarly, we can also use the Array.from()
method, which creates a new array from the array-like or iterable object (which is our NodeList).
const divs = document.querySelectorAll('div');
const divsArray = Array.from(divs);