TypeError: object.forEach no és una funció a JavaScript

Typeerror Object Foreach No Es Una Funcio A Javascript



En JavaScript, el ' per cadascú() ” executa una funció determinada una vegada per a cada element de la matriu. El mètode forEach() s'utilitza a cada element de matriu, conjunt o mapa. Si intenteu utilitzar aquest mètode en qualsevol altre tipus, es produirà un error ' object.forEach no és una funció en JavaScript ”. Per tant, utilitzeu-lo en matrius, mapes o conjunts o convertiu els valors a aquests tipus i, a continuació, apliqueu-hi aquest mètode.

Aquest article definirà l'error esmentat i les seves possibles solucions.

Com es produeix 'TypeError: object.forEach no és una funció a JavaScript'?

Quan s'utilitza un valor que no és una matriu, un mapa o un conjunt, el ' per cadascú() ' mètode com ara ' Objecte ' i així successivament, el ' TypeError: object.forEach no és una funció a JavaScript ” es produeix. Provem pràcticament la causa indicada.







Exemple

En l'exemple donat, primer, crearem un objecte amb les seves propietats en parella clau-valor:



const objecte = {

nom : 'Stephen' ,

rollno : 11 ,

assignatura : 'Comerç'

} ;

A continuació, imprimiu les seves propietats/entrades a la consola mitjançant el mètode forEach():



objecte. per cadascú ( O => {

consola. registre ( O ) ;

} ) ;

Com podeu veure a la sortida, es troba un error perquè el mètode forEach no és aplicable als objectes:





Com solucionar l'error especificat?

Per resoldre l'error comentat anteriorment, utilitzeu els mètodes d'Object com ara ' Object.keys() 'per obtenir claus en una matriu,' Object.values() ' per obtenir valors de l'objecte, o ' Object.entrades() ” per recuperar totes les entrades d'un objecte. A més, el “ Array.from() ” El mètode converteix l'objecte especificat en una matriu d'objectes.



Provem un exemple per resoldre aquest problema.

Exemple 1: Corregiu l'error esmentat mitjançant un mètode Object.entries().

En aquest exemple, obtindrem les entrades d'un objecte utilitzant el ' Object.entrades() ' mètode amb el ' per cadascú() ” mètode que retorna una matriu d'entrades d'objectes en parells clau-valor:

Objecte . entrades ( objecte ) . per cadascú ( a => {

consola. registre ( a ) ;

} ) ;

No donarà cap error, perquè el mètode Object.entries() converteix els valors en una matriu i el mètode forEach() s'utilitza per executar la funció donada a cada element.

La sortida indica que el mètode forEach() s'executa correctament a l'objecte mitjançant el mètode Object.entries():

Nota: forEach mètode també s'aplica per obtenir claus i valors d'un objecte mitjançant el mètode Object.keys() i Object.values().

Ara, a veure si no voleu obtenir les claus, els valors o les entrades d'un objecte, què farieu? Mireu l'exemple donat!

Exemple 2: solucioneu l'error esmentat mitjançant el mètode Array.from().

Per corregir aquest error, convertiu l'objecte en una matriu d'objectes i, a continuació, apliqueu-hi el mètode forEach() mitjançant el ' Array.from() ” mètode. Imprimirà totes les propietats d'un objecte sense donar cap error.

Primer convertim l'objecte en una matriu d'objectes:

const objecte = [ {

nom : 'Stephen' ,

rollno : 11 ,

assignatura : 'Comerç'

} ]

Truqueu al mètode forEach():

Matriu . des de ( objecte ) . per cadascú ( a les => {

consola. registre ( a les ) ;

} ) ;

Sortida

Hem recopilat totes les millors solucions possibles per solucionar l'error especificat.

Conclusió

L'error esmentat es produeix quan intenteu utilitzar el ' per cadascú() ” en un valor que no sigui una matriu, un conjunt o un mapa. Per corregir aquest error, utilitzeu ' Array.from() ” mètode per convertir l'objecte en una matriu i després utilitzar-hi el mètode forEach(). Aquest article descriu l'ocurrència i la solució de l'error esmentat.