NodeList — array-like коллекция DOM, не Array. В старых средах у него не было forEach/map. Сейчас у статического и в современных браузерах у NodeList есть forEach, но всё ещё нет полного Array API (map, filter — нет).
const list = document.querySelectorAll('div');
list.forEach((el) =>console.log(el)); // ок в современных браузерах// полноценный массив:const arr = [...list];
// или Array.from(list)
arr.map((el) => el.id);
HTMLCollection (например children) — «живая», ещё менее удобна.
Итог
NodeList ≠ Array; конвертируйте через spread/Array.from для map/filter.
Почему нельзя вызвать `forEach` и похожие методы массива у `NodeList`? · Sobeso