Ви можете використовувати 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 () {...})
.