TypeError: object.forEach nie jest funkcją w JavaScript

Typeerror Object Foreach Nie Jest Funkcja W Javascript



W JavaScript „ dla każdego() ” wykonuje określoną funkcję raz dla każdego elementu tablicy. Metoda forEach() jest używana na każdym elemencie Array, Set lub Map. Jeśli spróbujesz użyć tej metody na jakimkolwiek innym typie, spowoduje to błąd „ obiekt.forEach nie jest funkcją w JavaScript ”. Dlatego użyj go na tablicach, mapach lub zestawach lub przekonwertuj wartości na te typy, a następnie zastosuj do nich tę metodę.

Ten artykuł zdefiniuje wspomniany błąd i jego możliwe rozwiązania.

W jaki sposób pojawia się „TypeError: object.forEach nie jest funkcją w JavaScript”?

Gdy używana jest wartość, która nie jest tablicą, mapą lub zestawem, „ dla każdego() ” metoda, taka jak „ Obiekt ” i tak dalej, „ TypeError: object.forEach nie jest funkcją w JavaScript ' występuje. Przetestujmy podaną przyczynę praktycznie.







Przykład

W podanym przykładzie najpierw utworzymy obiekt z jego właściwościami w parze klucz-wartość:



konst obiekt = {

nazwa : „Stefan” ,

rolka nr : jedenaście ,

Przedmiot : 'Handel'

} ;

Następnie wydrukuj jego właściwości/wpisy na konsoli za pomocą metody forEach() :



obiekt. dla każdego ( O => {

konsola. dziennik ( O ) ;

} ) ;

Jak widać w danych wyjściowych, wystąpił błąd, ponieważ metoda forEach nie ma zastosowania do obiektów:





Jak naprawić określony błąd?

Aby rozwiązać omówiony powyżej błąd, użyj metod Object, takich jak „ Obiekt.keys() ”, aby uzyskać klucze w tablicy, „ Obiekt.wartości() ” do pobierania wartości obiektu lub „ Obiekt.wpisy() ” do pobierania wszystkich wpisów obiektu. Ponadto „ Tablica.z() ” konwertuje określony obiekt na tablicę obiektów.



Spróbujmy rozwiązać ten problem na przykładzie.

Przykład 1: Napraw wspomniany błąd za pomocą metody Object.entries().

W tym przykładzie otrzymamy wpisy obiektu za pomocą „ Obiekt.wpisy() ” metoda z „ dla każdego() ”, która zwraca tablicę wpisów obiektu w parach klucz-wartość:

Obiekt . wpisy ( obiekt ) . dla każdego ( w => {

konsola. dziennik ( w ) ;

} ) ;

Nie da to błędu, ponieważ metoda Object.entries() konwertuje wartości w tablicy, a metoda forEach() służy do wykonania danej funkcji na każdym elemencie.

Dane wyjściowe wskazują, że metoda forEach() została pomyślnie uruchomiona na obiekcie przy użyciu metody Object.entries() :

Uwaga: Metoda forEach jest również stosowana do pobierania kluczy i wartości obiektu za pomocą metody Object.keys() i Object.values() .

Zobaczmy teraz, czy nie chcesz uzyskać kluczy, wartości lub wpisów obiektu, więc co byś zrobił? Zobacz podany przykład!

Przykład 2: Napraw wspomniany błąd za pomocą metody Array.from()

Aby naprawić ten błąd, przekształć obiekt w tablicę obiektów, a następnie zastosuj na nim metodę forEach() za pomocą „ Tablica.z() ' metoda. Wydrukuje wszystkie właściwości obiektu bez błędu.

Najpierw przekształćmy obiekt w tablicę obiektów:

konst obiekt = [ {

nazwa : „Stefan” ,

rolka nr : jedenaście ,

Przedmiot : 'Handel'

} ]

Wywołaj metodę forEach():

Szyk . od ( obiekt ) . dla każdego ( w => {

konsola. dziennik ( w ) ;

} ) ;

Wynik

Zebraliśmy wszystkie najlepsze możliwe rozwiązania, aby naprawić określony błąd.

Wniosek

Wspomniany błąd występuje, gdy próbujesz użyć „ dla każdego() ” na wartości, która nie jest tablicą, zestawem ani mapą. Aby naprawić ten błąd, użyj opcji „ Tablica.z() ”, aby przekonwertować obiekt na tablicę, a następnie użyć na nim metody forEach(). W tym artykule opisano występowanie i rozwiązanie wspomnianego błędu.