by Sai gowtham

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);

Top Udemy Courses

JavaScript - The Complete Guide 2020 (Beginner + Advanced)
JavaScript - The Complete Guide 2020 (Beginner + Advanced)
26,545 students enrolled
52 hours of video content
View Course
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
221,520 students enrolled
44 hours of video content
View Course
Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)
Vue JS 2 - The Complete Guide (incl. Vue Router & Vuex)
114,575 students enrolled
21 hours of video content
View Course