Ви можете використовувати Array.fromдля перетворення колекції в масив, який чистіше, ніж Array.prototype.forEach.call:
Array.from(document.getElementsByClassName("myclass")).forEach(
function(element, index, array) {
// do stuff
}
);
У старих браузерах, які не підтримують Array.from, потрібно використовувати щось на зразок Babel.
ES6 також додає цей синтаксис:
[...document.getElementsByClassName("myclass")].forEach(
(element, index, array) => {
// do stuff
}
);
Деструструктура відпочинку за допомогою ...всіх об'єктів, схожих на масив, не лише самих масивів, тоді гарний синтаксис старого масиву використовується для побудови масиву зі значень.
У той час як альтернативна функція querySelectorAll(яка getElementsByClassNameніби не застаріла) повертає колекцію, яка є forEachвродженою, інші методи на кшталт mapабо filterвідсутні, тому цей синтаксис все ще корисний:
[...document.querySelectorAll(".myclass")].map(
(element, index, array) => {
// do stuff
}
);
[...document.querySelectorAll(".myclass")].map(element => element.innerHTML);
[].forEach.call(elsArray, function () {...}).