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.