Да, существуют альтернативные методы преобразования HTMLCollection в массив без явного перебора каждого элемента. Вот несколько подходов:
Метод 1: расширение синтаксиса
const htmlCollection = document.getElementsByClassName('your-class');
const array = [...htmlCollection];
Синтаксис распространения позволяет преобразовать итерируемый объект, например HTMLCollection, в массив. Он распределяет каждый элемент коллекции на отдельные элементы массива.
Метод 2: Array.from()
const htmlCollection = document.getElementsByClassName('your-class');
const array = Array.from(htmlCollection);
Метод Array.from() создает новый массив из объекта, подобного массиву или итерируемого. Он может преобразовать HTMLCollection в массив, приняв коллекцию в качестве аргумента.
Метод 3: Array.prototype.slice.call()
const htmlCollection = document.getElementsByClassName('your-class');
const array = Array.prototype.slice.call(htmlCollection);
Этот метод использует метод среза(), который является частью прототипа Array, для преобразования HTMLCollection в массив. Вызвав его в контексте коллекции, мы можем эффективно преобразовать его.
Эти методы предоставляют более краткую альтернативу ручному перебору HTMLCollection.