TypeError: object.forEach non è una funzione in JavaScript

Typeerror Object Foreach Non E Una Funzione In Javascript



In JavaScript, il ' per ciascuno() Il metodo ” esegue una data funzione una volta per ogni elemento dell'array. Il metodo forEach() viene utilizzato su ciascun elemento di Array, Set o Map. Se provi a utilizzare questo metodo su qualsiasi altro tipo, genererà un errore ' object.forEach non è una funzione in JavaScript ”. Quindi, usalo su array, mappe o set o converti i valori in questi tipi e quindi applica loro questo metodo.

Questo articolo definirà l'errore menzionato e le sue possibili soluzioni.

Come si verifica 'TypeError: object.forEach non è una funzione in JavaScript'?

Quando viene utilizzato un valore che non è un array, una mappa o un set, il ' per ciascuno() ” metodo come “ Oggetto ” e così via, il “ TypeError: object.forEach non è una funzione in JavaScript ” si verifica. Testiamo praticamente la causa dichiarata.







Esempio

Nell'esempio dato, per prima cosa creeremo un oggetto con le sue proprietà nella coppia chiave-valore:



cost oggetto = {

nome : 'Stefano' ,

rollno : undici ,

argomento : 'Commercio'

} ;

Quindi, stampa le sue proprietà/voci sulla console usando il metodo forEach():



oggetto. per ciascuno ( O => {

consolare. tronco d'albero ( O ) ;

} ) ;

Come puoi vedere nell'output, si verifica un errore perché il metodo forEach non è applicabile per gli oggetti:





Come correggere l'errore specificato?

Per risolvere l'errore sopra discusso, utilizzare i metodi di Object come ' Oggetto.keys() ” per ottenere le chiavi in ​​un array, “ Oggetto.valori() ” per ottenere i valori dell'oggetto, o “ Oggetto.voci() ” per recuperare tutte le voci di un oggetto. Inoltre, il “ Array.da() ” converte l'oggetto specificato in un array di oggetti.



Proviamo un esempio per risolvere questo problema.

Esempio 1: correggere l'errore citato utilizzando un metodo Object.entries()

In questo esempio, otterremo le voci di un oggetto utilizzando il ' Oggetto.voci() ” metodo con il “ per ciascuno() ” metodo che restituisce un array di voci dell'oggetto in coppie chiave-valore:

Oggetto . inserimenti ( oggetto ) . per ciascuno ( in => {

consolare. tronco d'albero ( in ) ;

} ) ;

Non darà un errore, perché il metodo Object.entries() converte i valori in un array e il metodo forEach() viene utilizzato per eseguire la funzione data su ogni elemento.

L'output indica che il metodo forEach() è stato eseguito correttamente sull'oggetto utilizzando il metodo Object.entries():

Nota: Il metodo forEach viene applicato anche per ottenere chiavi e valori di un oggetto utilizzando il metodo Object.keys() e Object.values().

Ora, vediamo se non vuoi ottenere le chiavi, i valori o le voci di un oggetto, quindi cosa faresti? Guarda l'esempio dato!

Esempio 2: correggere l'errore citato utilizzando il metodo Array.from()

Per correggere questo errore, convertire l'oggetto in un array di oggetti e quindi applicare il metodo forEach() su di esso utilizzando il metodo ' Array.da() ' metodo. Stamperà tutte le proprietà di un oggetto senza dare un errore.

Per prima cosa convertiamo l'oggetto in un array di oggetti:

cost oggetto = [ {

nome : 'Stefano' ,

rollno : undici ,

argomento : 'Commercio'

} ]

Chiama il metodo forEach():

Vettore . a partire dal ( oggetto ) . per ciascuno ( in => {

consolare. tronco d'albero ( in ) ;

} ) ;

Produzione

Abbiamo compilato tutte le migliori soluzioni possibili per correggere l'errore specificato.

Conclusione

L'errore menzionato si verifica quando si tenta di utilizzare il ' per ciascuno() ” su un valore che non è un array, un set o una mappa. Per correggere questo errore, utilizzare il ' Array.da() ” per convertire l'oggetto in un array e quindi utilizzare il metodo forEach() su di esso. Questo articolo ha descritto il verificarsi e la soluzione dell'errore menzionato.