TypeError: object.forEach är inte en funktion i JavaScript

Typeerror Object Foreach Ar Inte En Funktion I Javascript



I JavaScript är ' för varje() ”-metoden exekverar en given funktion en gång för varje matriselement. Metoden forEach() används på varje Array, Set eller Maps element. Om du försöker använda den här metoden på någon annan typ kommer det att skicka ett felmeddelande ' object.forEach är inte en funktion i JavaScript ”. Så använd den på arrayer, kartor eller uppsättningar eller konvertera värdena till dessa typer och använd sedan den här metoden på dem.

Den här artikeln kommer att definiera det nämnda felet och dess möjliga lösningar.

Hur uppstår 'TypeError: object.forEach är inte en funktion i JavaScript'?

När ett värde som inte är en Array, Map eller Set används, visas för varje() ' metod som ' Objekt ' och så vidare, ' TypeError: object.forEach är inte en funktion i JavaScript ” inträffar. Låt oss testa den angivna orsaken praktiskt.







Exempel

I det givna exemplet kommer vi först att skapa ett objekt med dess egenskaper i nyckel-värdepar:



konst objekt = {

namn : 'Stefan' ,

rollno : elva ,

ämne : 'Handel'

} ;

Skriv sedan ut dess egenskaper/poster på konsolen med metoden forEach():



objekt. för varje ( O => {

trösta. logga ( O ) ;

} ) ;

Som du kan se i utgången påträffas ett fel eftersom forEach-metoden inte är tillämplig för objekt:





Hur åtgärdar jag det angivna felet?

För att lösa det ovan diskuterade felet, använd Objects metoder som ' Object.keys() ' för att få nycklar i en array, ' Object.values() ' för att få värden för objektet, eller ' Object.entries() ” för att hämta alla poster i ett objekt. Dessutom har ' Array.from() ”-metoden konverterar det angivna objektet till en array av objekt.



Låt oss prova ett exempel för att lösa detta problem.

Exempel 1: Åtgärda det nämnda felet med en Object.entries()-metod

I det här exemplet kommer vi att få posterna för ett objekt med hjälp av ' Object.entries() '-metoden med ' för varje() ” metod som returnerar en array av objekts poster i nyckel-värdepar:

Objekt . poster ( objekt ) . för varje ( i => {

trösta. logga ( i ) ;

} ) ;

Det kommer inte att ge ett fel, eftersom Object.entries()-metoden konverterar värdena i en array och metoden forEach() används för att exekvera den givna funktionen på varje element.

Utdata indikerar att metoden forEach() har körts framgångsrikt på objektet med metoden Object.entries():

Notera: forEach metod används också för att hämta nycklar och värden för ett objekt med hjälp av metoderna Object.keys() och Object.values().

Nu, låt oss se om du inte vill få ett objekts nycklar, värden eller poster, så vad skulle du göra? Se det givna exemplet!

Exempel 2: Åtgärda det nämnda felet med metoden Array.from().

För att åtgärda det här felet, konvertera objektet till en array av objekt och använd sedan metoden forEach() på det med hjälp av ' Array.from() 'metoden. Det kommer att skriva ut alla egenskaper för ett objekt utan att ge ett fel.

Låt oss först konvertera objektet till en array av objekt:

konst objekt = [ {

namn : 'Stefan' ,

rollno : elva ,

ämne : 'Handel'

} ]

Anropa metoden forEach():

Array . från ( objekt ) . för varje ( => {

trösta. logga ( ) ;

} ) ;

Produktion

Vi har sammanställt alla de bästa möjliga lösningarna för att åtgärda det angivna felet.

Slutsats

Det nämnda felet uppstår när du försöker använda ' för varje() ”-metoden på ett värde som inte är en Array, Set eller Map. För att åtgärda detta fel, använd ' Array.from() ”-metoden för att konvertera objektet till en array och sedan använda metoden forEach() på den. Den här artikeln beskrev förekomsten och lösningen av det nämnda felet.