Задать вопрос
AlexanderSitnik
@AlexanderSitnik
Студент ТУСУРа

Почему не получается массив?

К примеру пишу строчку:
var NewElement = document.getElementsByTagName('p');


И в NewElement хранится: "HTMLCollection", а не [p,p,p]

Подскажите почему так?
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Потому что метод так устроен - возвращает коллекцию, а не массив.

Хотите массив, есть варианты:

const elements = [...document.getElementsByTagName('p')];
// или
const elements = Array.from(document.getElementsByTagName('p'));
// или
const elements = [].concat.apply([], document.getElementsByTagName('p'));
// или
const elements = Array.prototype.slice.call(document.getElementsByTagName('p'));
// или
const elements = Object.values(document.getElementsByTagName('p'));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы