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.