BLACK FRIDAY

осталось 3 дня

Скидка 10% и подарок на выбор — при покупке одной программы
При покупке двух программ  — вторая со скидкой 50%

Как преобразовать nodelist в массив js

Ответы
Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
26 ноября 2021

Для преобразования в массив NodeList можно итерировать в цикле:

const nodeList = document.querySelectorAll('div');
const result = [];
for (const node of nodeList) {
  result.push(node);
}
console.log(result); // => [div#root, div.page-wrapper.document-page, ...]

Также у NodeList есть метод forEach:

const nodeList = document.querySelectorAll('div');
const result = [];
nodeList.forEach((node) => {
  result.push(node);
});
console.log(result); // => [div#root, div.page-wrapper.document-page, ...]

И самый простой способ преобразовать в массив, это использовать Array.from():

const nodeList = document.querySelectorAll('div');
const result = Array.from(nodeList);
console.log(result); // => [div#root, div.page-wrapper.document-page, ...]
Аватар пользователя Кирилл Маркеев
Кирилл Маркеев
18 октября 2022

nodeList - это массивоподобная коллекция узлов, которая возвращается методом document.querySelectorAll().

Сходство с обычным массивом заключается в том, что по nodeList можно проитерироваться методом forEach(), а различия в том, что для nodeList недоступны такие методы массивов, как map(), filter() и reduce().

Для обхода этого ограничения мы можем преобразовать nodeList в массив, используя spread оператор или метод Array.from().

  • Преобразование с помощью spread оператора:
const divList = document.querySelectorAll('div');
const arr = [...divList];
  • То же самое с помощью метода Array.from()
const arr = Array.from(divList);
Добавьте ваш ответ

Рекомендуемые курсы

полифиллы
AJAX
события
селекторы
20 часов
Посмотреть
Алгоритмы сортировки
Структуры данных
Бинарный поиск
Жадные алгоритмы
10 часов
Посмотреть
шаблонизация
REST
мидлвары
тестирование
11 часов
Посмотреть