Por que não posso usar Array.forEach em uma coleção de elementos Javascript? [duplicado

Esta pergunta já tem uma resposta aqui:

JavaScript: percorre todos os elementos retornados de getElementsByTagName 9 respostas

Estou construindo um aplicativo com Babel / ES6. Quero desabilitar todos os elementos do formulário para uma versão somente para exibição, então fiz o seguinte:

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

Eu esperava poder fazer isso, em vez de usar um @ antigo normfor loop (que funcionou):

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

mas eu conseguiTypeError: elements.forEach is not a function

O estranho é que euconsole.log(elements) no console do desenvolvedor do Chrome, exatamente como uma matriz com um monte deinput objetos. Não é exibido com oObject notação para objetos, e todas as chaves são números inteiros. Eu estou pensando que é algum tipo de pseudo array, mas eu nem saberia como descobrir isso.

EDITA: resposta curta não é uma matriz, é uma coleção HTMLC. VejoPor que o nodelist não tem par


*ATUALIZAR

Peresta resposta, nodelist agora tem oforEach método!

questionAnswers(3)

yourAnswerToTheQuestion