Warum kann ich Array.forEach nicht für eine Sammlung von Javascript-Elementen verwenden? [Duplikat

Diese Frage hat hier bereits eine Antwort:

JavaScript: Alle von getElementsByTagName @ zurückgegebenen Elemente durchlauf 9 answers

Ich baue eine App mit Babel / ES6. Ich möchte alle Formularelemente für eine Nur-Ansicht-Version davon deaktivieren. Deshalb habe ich Folgendes ausgeführt:

let form = document.getElementById('application-form')
let elements = form.elements

Ich habe erwartet, dass ich dies tun kann, anstatt ein normales altes @ zu verwendefor loop (was hat funktioniert):

elements.forEach((el) => {
    el.disabled = true
})

aber ich habeTypeError: elements.forEach is not a function

Das seltsame ist, wenn ichconsole.log(elements) in der Chrome-Dev-Konsole ist es genau wie ein Array mit einer Reihe voninput Objekte. Es wird nicht mit dem @ angezeiObject -Notation für Objekte und alle Schlüssel sind Ganzzahlen. Ich denke, es ist eine Art Pseudo-Array, aber ich würde nicht einmal wissen, wie ich das herausfinden kann.

BEARBEITE: kurze Antwort, es ist kein Array, es ist eine HTMLCollection. sehenWarum hat die Knotenliste nicht für jeden?


*AKTUALISIEREN

Perdiese Antwort, nodelist hat jetzt dasforEach Methode

Antworten auf die Frage(6)

Ihre Antwort auf die Frage