TypeError: object.forEach no es una función en JavaScript

Typeerror Object Foreach No Es Una Funcion En Javascript



En JavaScript, el “ para cada() El método ejecuta una función dada una vez para cada elemento de la matriz. El método forEach() se usa en cada elemento de Array, Set o Map. Si intenta utilizar este método en cualquier otro tipo, arrojará un error ' object.forEach no es una función en JavaScript ”. Por lo tanto, utilícelo en matrices, mapas o conjuntos o convierta los valores a estos tipos y luego aplique este método a ellos.

Este artículo definirá el error mencionado y sus posibles soluciones.

¿Cómo ocurre 'TypeError: object.forEach no es una función en JavaScript'?

Cuando se utiliza un valor que no es una matriz, un mapa o un conjunto, el ' para cada() ” método como “ Objeto ” y así sucesivamente, el “ TypeError: object.forEach no es una función en JavaScript ' ocurre. Probemos la causa declarada de manera práctica.







Ejemplo

En el ejemplo dado, primero, crearemos un objeto con sus propiedades en un par clave-valor:



constante objeto = {

nombre : 'Esteban' ,

rollo no : 11 ,

tema : 'Comercio'

} ;

Luego, imprime sus propiedades/entradas en la consola usando el método forEach():



objeto. para cada ( O => {

consola. Iniciar sesión ( O ) ;

} ) ;

Como puede ver en el resultado, se encuentra un error porque el método forEach no se aplica a los objetos:





¿Cómo corregir el error especificado?

Para resolver el error discutido anteriormente, use los métodos de Object como ' Objeto.claves() ” para obtener claves en una matriz, “ Objeto.valores() ” para obtener valores del objeto, o “ Objeto.entradas() ” para recuperar todas las entradas de un objeto. Además, el “ matriz.desde() El método convierte el objeto especificado en una matriz de objetos.



Probemos un ejemplo para resolver este problema.

Ejemplo 1: Solucione el error mencionado usando un método Object.entries()

En este ejemplo, obtendremos las entradas de un objeto usando el ' Objeto.entradas() ” método con el “ para cada() ” método que devuelve una matriz de entradas de objetos en pares clave-valor:

Objeto . entradas ( objeto ) . para cada ( en => {

consola. Iniciar sesión ( en ) ;

} ) ;

No dará un error, porque el método Object.entries() convierte los valores en una matriz y el método forEach() se usa para ejecutar la función dada en cada elemento.

El resultado indica que el método forEach() se ejecuta con éxito en el objeto mediante el método Object.entries():

Nota: El método forEach también se aplica para obtener claves y valores de un objeto usando el método Object.keys() y Object.values().

Ahora, veamos si no desea obtener las claves, los valores o las entradas de un objeto, entonces, ¿qué haría? ¡Vea el ejemplo dado!

Ejemplo 2: Solucione el error mencionado usando el método Array.from()

Para corregir este error, convierta el objeto en una matriz de objetos y luego aplique el método forEach() usando el ' matriz.desde() ' método. Imprimirá todas las propiedades de un objeto sin dar un error.

Primero, convirtamos el objeto en una matriz de objetos:

constante objeto = [ {

nombre : 'Esteban' ,

rollo no : 11 ,

tema : 'Comercio'

} ]

Llame al método forEach():

Formación . desde ( objeto ) . para cada ( en => {

consola. Iniciar sesión ( en ) ;

} ) ;

Producción

Hemos recopilado todas las mejores soluciones posibles para corregir el error especificado.

Conclusión

El error mencionado ocurre cuando intentas usar el “ para cada() ” en un valor que no es una matriz, un conjunto o un mapa. Para corregir este error, utilice el ' matriz.desde() ” para convertir el objeto en una matriz y luego usar el método forEach() en él. Este artículo describe la ocurrencia y solución del error mencionado.