TypeError: object.forEach nu este o funcție în JavaScript

Typeerror Object Foreach Nu Este O Functie In Javascript



În JavaScript, „ pentru fiecare() ” metoda execută o funcție dată o dată pentru fiecare element de matrice. Metoda forEach() este utilizată pe fiecare element Array, Set sau Map. Dacă încercați să utilizați această metodă pe orice alt tip, va apărea o eroare „ object.forEach nu este o funcție în JavaScript ”. Așadar, utilizați-l pe matrice, hărți sau seturi sau convertiți valorile în aceste tipuri și apoi aplicați-le această metodă.

Acest articol va defini eroarea menționată și posibilele sale soluții.

Cum apare „TypeError: object.forEach nu este o funcție în JavaScript”?

Când se utilizează o valoare care nu este o matrice, o hartă sau un set, „ pentru fiecare() ” metoda precum “ Obiect ” și așa mai departe, „ TypeError: object.forEach nu este o funcție în JavaScript ” apare. Să testăm practic cauza declarată.







Exemplu

În exemplul dat, mai întâi, vom crea un obiect cu proprietățile sale în perechea cheie-valoare:



const obiect = {

Nume : „Ștefan” ,

rola numărul : unsprezece ,

subiect : 'Comerţ'

} ;

Apoi, imprimați proprietățile/inregistrările sale pe consolă folosind metoda forEach():



obiect. pentru fiecare ( O => {

consolă. Buturuga ( O ) ;

} ) ;

După cum puteți vedea în rezultat, se întâlnește o eroare deoarece metoda forEach nu este aplicabilă pentru obiecte:





Cum se remediază eroarea specificată?

Pentru a rezolva eroarea discutată mai sus, utilizați metodele Object, cum ar fi „ Object.keys() ” pentru a obține cheile într-o matrice, ” Object.values() „ pentru obținerea valorilor obiectului sau „ Object.entries() ” pentru preluarea tuturor intrărilor unui obiect. În plus, „ Array.from() ” metoda convertește obiectul specificat într-o matrice de obiecte.



Să încercăm un exemplu pentru a rezolva această problemă.

Exemplul 1: Remediați eroarea menționată folosind o metodă Object.entries().

În acest exemplu, vom obține intrările unui obiect folosind „ Object.entries() ” metoda cu “ pentru fiecare() ” metoda care returnează o matrice de intrări ale obiectului în perechi cheie-valoare:

Obiect . intrări ( obiect ) . pentru fiecare ( în => {

consolă. Buturuga ( în ) ;

} ) ;

Nu va da o eroare, deoarece metoda Object.entries() convertește valorile într-o matrice și metoda forEach() este folosită pentru a executa funcția dată pe fiecare element.

Ieșirea indică faptul că metoda forEach() este rulată cu succes pe obiect folosind metoda Object.entries():

Notă: Pentru fiecare metodă se aplică și pentru obținerea cheilor și valorilor unui obiect folosind metoda Object.keys() și Object.values().

Acum, să vedem dacă nu doriți să obțineți cheile, valorile sau intrările unui obiect, deci ce ați face? Vezi exemplul dat!

Exemplul 2: Remediați eroarea menționată folosind metoda Array.from().

Pentru a remedia această eroare, convertiți obiectul într-o matrice de obiecte și apoi aplicați metoda forEach() pe el folosind „ Array.from() ” metoda. Va imprima toate proprietățile unui obiect fără a da o eroare.

Să convertim mai întâi obiectul într-o matrice de obiecte:

const obiect = [ {

Nume : „Ștefan” ,

rola numărul : unsprezece ,

subiect : 'Comerţ'

} ]

Apelați metoda forEach():

Matrice . din ( obiect ) . pentru fiecare ( la => {

consolă. Buturuga ( la ) ;

} ) ;

Ieșire

Am compilat toate cele mai bune soluții posibile pentru a remedia eroarea specificată.

Concluzie

Eroarea menționată apare atunci când încercați să utilizați „ pentru fiecare() ” pe o valoare care nu este un Array, Set sau Map. Pentru a remedia această eroare, utilizați „ Array.from() ” pentru a converti obiectul într-o matrice și apoi utilizați metoda forEach() pe el. Acest articol a descris apariția și soluția erorii menționate.