Este artigo definirá o erro mencionado e suas possíveis soluções.
Como ocorre “TypeError: object.forEach não é uma função em JavaScript”?
Quando um valor que não é um Array, Map ou Set é usado, o “ para cada() ” método como “ Objeto ” e assim por diante, o “ TypeError: object.forEach não é uma função em JavaScript ” ocorre. Vamos testar a causa declarada de forma prática.
Exemplo
No exemplo dado, primeiro vamos criar um objeto com suas propriedades em par chave-valor:
const objeto = {
nome : 'Estêvão' ,
Núm. da lista : onze ,
sujeito : 'Comércio'
} ;
Em seguida, imprima suas propriedades/entradas no console usando o método forEach():
objeto. para cada ( o => {
console. registro ( o ) ;
} ) ;
Como você pode ver na saída, foi encontrado um erro porque o método forEach não é aplicável a objetos:
Como corrigir o erro especificado?
Para resolver o erro discutido acima, use os métodos de Object como “ Object.keys() ” para obter chaves em uma matriz, “ Object.values() ” para obter valores do objeto, ou “ Object.entries() ” para recuperar todas as entradas de um objeto. Além disso, o “ Matriz.de() ” converte o objeto especificado em uma matriz de objetos.
Vamos tentar um exemplo para resolver esse problema.
Exemplo 1: corrigir o erro mencionado usando um método Object.entries()
Neste exemplo, vamos obter as entradas de um objeto usando o método “ Object.entries() ” método com o “ para cada() ” método que retorna uma matriz de entradas do objeto em pares chave-valor:
Objeto . entradas ( objeto ) . para cada ( no => {console. registro ( no ) ;
} ) ;
Não dará erro, porque o método Object.entries() converte os valores em um array e o método forEach() é usado para executar a função dada em cada elemento.
A saída indica que o método forEach() foi executado com sucesso no objeto usando o método Object.entries():
Observação: O método forEach também é aplicado para obter chaves e valores de um objeto usando o método Object.keys() e Object.values().
Agora, vamos ver se você não deseja obter as chaves, valores ou entradas de um objeto, então o que você faria? Veja o exemplo dado!
Exemplo 2: corrigir o erro mencionado usando o método Array.from()
Para corrigir esse erro, converta o objeto em uma matriz de objetos e aplique o método forEach() nele usando o método “ Matriz.de() ” método. Ele imprimirá todas as propriedades de um objeto sem dar erro.
Vamos primeiro converter o objeto em um array de objetos:
const objeto = [ {nome : 'Estêvão' ,
Núm. da lista : onze ,
sujeito : 'Comércio'
} ]
Chame o método forEach():
Variedade . a partir de ( objeto ) . para cada ( no => {console. registro ( no ) ;
} ) ;
Saída
Compilamos todas as melhores soluções possíveis para corrigir o erro especificado.
Conclusão
O erro mencionado ocorre quando você tenta usar o “ para cada() ” em um valor que não é um Array, Set ou Map. Para corrigir esse erro, use o “ Matriz.de() ” para converter o objeto em uma matriz e, em seguida, usar o método forEach() nele. Este artigo descreveu a ocorrência e solução do erro mencionado.