TypeError: object.forEach não é uma função em JavaScript

Typeerror Object Foreach Nao E Uma Funcao Em Javascript



Em JavaScript, o “ para cada() ” executa uma determinada função uma vez para cada elemento da matriz. O método forEach() é usado em cada elemento do Array, Set ou Map. Se você tentar utilizar este método em qualquer outro tipo, ele lançará um erro “ object.forEach não é uma função em JavaScript ”. Portanto, use-o em arrays, mapas ou conjuntos ou converta os valores para esses tipos e aplique esse método a eles.

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.