¿Por qué no puedo usar Array.forEach en una colección de elementos Javascript? [duplicar

Esta pregunta ya tiene una respuesta aquí:

JavaScript: recorre todos los elementos devueltos por getElementsByTagName 9 respuestas

Estoy creando una aplicación con Babel / ES6. Quiero deshabilitar todos los elementos de formulario para una versión de solo lectura, así que hice esto:

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

Esperaba poder hacer esto, en lugar de usar unafor loop (que funcionó):

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

pero tengoTypeError: elements.forEach is not a function

Lo extraño es si yoconsole.log(elements) en la consola de desarrollo de Chrome es exactamente como una matriz con un montón deinput objetos. No se muestra con laObject notación para objetos, y todas las claves son enteros. Estoy pensando que es una especie de pseudo array, pero ni siquiera sabría cómo descubrirlo.

EDITA: respuesta corta, no es una matriz, es una colección HTMLC. ver¿Por qué no tiene nodelist forEach?


*ACTUALIZAR

Peresta respuesta, nodelist ahora tiene elforEach método!

Respuestas a la pregunta(3)

Su respuesta a la pregunta