TypeError: object.forEach не является функцией в JavaScript

Typeerror Object Foreach Ne Avlaetsa Funkciej V Javascript



В JavaScript « для каждого() ” выполняет заданную функцию один раз для каждого элемента массива. Метод forEach() используется для каждого элемента массива, набора или карты. Если вы попытаетесь использовать этот метод для любого другого типа, он выдаст ошибку « object.forEach не является функцией в JavaScript ». Итак, используйте его для массивов, карт или наборов или преобразуйте значения в эти типы, а затем примените к ним этот метод.

В этой статье будет определена упомянутая ошибка и ее возможные решения.

Как происходит «TypeError: object.forEach не является функцией в JavaScript»?

Когда используется значение, не являющееся массивом, картой или набором, « для каждого() такой метод, как « Объект » и так далее, « TypeError: object.forEach не является функцией в JavaScript ' происходит. Проверим заявленную причину практически.







Пример

В данном примере сначала мы создадим объект с его свойствами в паре ключ-значение:



константа объект знак равно {

имя : 'Стивен' ,

роллно : одиннадцать ,

предмет : «Коммерция»

} ;

Затем выведите его свойства/записи на консоль с помощью метода forEach():



объект. для каждого ( О => {

приставка. журнал ( О ) ;

} ) ;

Как видно из вывода, возникает ошибка, поскольку метод forEach неприменим для объектов:





Как исправить указанную ошибку?

Чтобы устранить обсуждаемую выше ошибку, используйте методы объекта, такие как « Объект.keys() », чтобы получить ключи в массиве, « Объект.значения() ” для получения значений объекта или “ Объект.записи() ” для получения всех записей объекта. Более того, « Массив.от() ” преобразует указанный объект в массив объектов.



Давайте попробуем пример, чтобы решить эту проблему.

Пример 1. Исправление указанной ошибки с помощью метода Object.entries()

В этом примере мы получим записи объекта, используя « Объект.записи() ” метод с “ для каждого() », который возвращает массив записей объекта в парах ключ-значение:

Объект . записи ( объект ) . для каждого ( в => {

приставка. журнал ( в ) ;

} ) ;

Это не даст ошибки, потому что метод Object.entries() преобразует значения в массив, а метод forEach() используется для выполнения данной функции на каждом элементе.

Вывод показывает, что метод forEach() успешно запущен для объекта с использованием метода Object.entries():

Примечание: Метод forEach также применяется для получения ключей и значений объекта с помощью методов Object.keys() и Object.values().

Теперь давайте посмотрим, не хотите ли вы получить ключи, значения или записи объекта, и что бы вы сделали? Смотрите приведенный пример!

Пример 2. Исправление указанной ошибки с помощью метода Array.from()

Чтобы исправить эту ошибку, преобразуйте объект в массив объектов, а затем примените к нему метод forEach() с помощью « Массив.от() метод. Он напечатает все свойства объекта без ошибки.

Давайте сначала преобразуем объект в массив объектов:

константа объект знак равно [ {

имя : 'Стивен' ,

роллно : одиннадцать ,

предмет : «Коммерция»

} ]

Вызовите метод forEach():

Множество . от ( объект ) . для каждого ( в => {

приставка. журнал ( в ) ;

} ) ;

Вывод

Мы собрали все лучшие возможные решения для исправления указанной ошибки.

Заключение

Упомянутая ошибка возникает, когда вы пытаетесь использовать « для каждого() ” для значения, которое не является массивом, набором или картой. Чтобы исправить эту ошибку, используйте « Массив.от() », чтобы преобразовать объект в массив, а затем использовать для него метод forEach(). В данной статье описано возникновение и решение указанной ошибки.