TypeError: object.forEach is geen functie in JavaScript

Typeerror Object Foreach Is Geen Functie In Javascript



In JavaScript is de ' voorelk() ” methode voert een bepaalde functie één keer uit voor elk array-element. De methode forEach() wordt gebruikt voor elk element Array, Set of Map. Als u deze methode op een ander type probeert te gebruiken, wordt er een fout weergegeven ' object.forEach is geen functie in JavaScript ”. Gebruik het dus op arrays, kaarten of sets of converteer de waarden naar deze typen en pas deze methode daarop toe.

Dit artikel definieert de genoemde fout en de mogelijke oplossingen.

Hoe komt 'TypeError: object.forEach is geen functie in JavaScript' voor?

Wanneer een waarde wordt gebruikt die geen Array, Map of Set is, wordt de voorelk() ” methode zoals “ Voorwerp ” enzovoort, de “ TypeError: object.forEach is geen functie in JavaScript ' komt voor. Laten we de genoemde oorzaak praktisch testen.







Voorbeeld

In het gegeven voorbeeld zullen we eerst een object maken met zijn eigenschappen in een sleutel-waardepaar:



const voorwerp = {

naam : 'Stefanus' ,

rolnr : elf ,

onderwerp : 'Handel'

} ;

Druk vervolgens de eigenschappen/vermeldingen op de console af met behulp van de forEach() methode:



voorwerp. voor elk ( O => {

troosten. loggen ( O ) ;

} ) ;

Zoals u in de uitvoer kunt zien, is er een fout opgetreden omdat de methode forEach niet van toepassing is op objecten:





Hoe de opgegeven fout op te lossen?

Om de hierboven besproken fout op te lossen, gebruikt u Object-methoden zoals ' Object.keys() ' om sleutels in een array te krijgen, ' Object.values() ” voor het verkrijgen van waarden van het object, of “ Object.entries() ” voor het ophalen van alle ingangen van een object. Bovendien is de “ Array.from() ” methode converteert het opgegeven object naar een reeks objecten.



Laten we een voorbeeld proberen om dit probleem op te lossen.

Voorbeeld 1: repareer de genoemde fout met behulp van een methode Object.entries().

In dit voorbeeld krijgen we de invoer van een object met behulp van de ' Object.entries() ” methode met de “ voorelk() ” methode die een reeks objectitems in sleutel-waardeparen retourneert:

Voorwerp . inzendingen ( voorwerp ) . voor elk ( in => {

troosten. loggen ( in ) ;

} ) ;

Het geeft geen foutmelding, omdat de methode Object.entries() de waarden in een array converteert en de methode forEach() wordt gebruikt om de gegeven functie op elk element uit te voeren.

De uitvoer geeft aan dat de methode forEach() met succes is uitgevoerd op het object met behulp van de methode Object.entries():

Opmerking: De methode forEach wordt ook toegepast voor het ophalen van sleutels en waarden van een object met behulp van de methoden Object.keys() en Object.values().

Laten we nu eens kijken of u de sleutels, waarden of ingangen van een object niet wilt ontvangen, dus wat zou u doen? Zie het gegeven voorbeeld!

Voorbeeld 2: Los de genoemde fout op met behulp van de Array.from()-methode

Om deze fout op te lossen, converteert u het object naar een reeks objecten en past u vervolgens de methode forEach() toe met behulp van de methode ' Array.from() ” methode. Het zal alle eigenschappen van een object afdrukken zonder een foutmelding te geven.

Laten we eerst het object converteren naar een reeks objecten:

const voorwerp = [ {

naam : 'Stefanus' ,

rolnr : elf ,

onderwerp : 'Handel'

} ]

Roep de methode forEach() aan:

matrix . van ( voorwerp ) . voor elk ( Bij => {

troosten. loggen ( Bij ) ;

} ) ;

Uitgang

We hebben de best mogelijke oplossingen samengesteld om de opgegeven fout op te lossen.

Conclusie

De genoemde fout treedt op wanneer u probeert de ' voorelke() '-methode op een waarde die geen Array, Set of Map is. Om deze fout op te lossen, gebruikt u de ' Array.from() ” om het object naar een array te converteren en vervolgens de methode forEach() erop te gebruiken. Dit artikel beschrijft het optreden en de oplossing van de genoemde fout.