È possibile utilizzare Array.fromper convertire la raccolta in array, che è molto più pulito di Array.prototype.forEach.call:
Array.from(document.getElementsByClassName("myclass")).forEach(
function(element, index, array) {
// do stuff
}
);
Nei browser più vecchi che non supportano Array.from, devi usare qualcosa come Babel.
ES6 aggiunge anche questa sintassi:
[...document.getElementsByClassName("myclass")].forEach(
(element, index, array) => {
// do stuff
}
);
Resta distruttivo con le ...opere su tutti gli oggetti simili a array, non solo gli array stessi, ma una buona vecchia sintassi dell'array viene utilizzata per costruire un array dai valori.
Mentre la funzione alternativa querySelectorAll(che in qualche modo rende getElementsByClassNameobsoleta) restituisce una raccolta che ha forEachnativamente, altri metodi come mapo filtermancano, quindi questa sintassi è ancora utile:
[...document.querySelectorAll(".myclass")].map(
(element, index, array) => {
// do stuff
}
);
[...document.querySelectorAll(".myclass")].map(element => element.innerHTML);
[].forEach.call(elsArray, function () {...}).