TypeError: object.forEach ليس وظيفة في JavaScript

Typeerror Object Foreach Lys Wzyft Fy Javascript



في JavaScript ، فإن ' لكل () 'ينفذ دالة معينة مرة واحدة لكل عنصر مصفوفة. يتم استخدام طريقة forEach () في كل عنصر من عناصر Array أو Set أو Map. إذا حاولت استخدام هذه الطريقة على أي نوع آخر ، فسيؤدي ذلك إلى ظهور خطأ ' إن object.forEach ليس دالة في JavaScript '. لذلك ، استخدمها على المصفوفات أو الخرائط أو المجموعات أو قم بتحويل القيم إلى هذه الأنواع ثم قم بتطبيق هذه الطريقة عليها.

ستحدد هذه المقالة الخطأ المذكور والحلول الممكنة له.

كيف تحدث 'TypeError: object.forEach ليست دالة في JavaScript'؟

عند استخدام قيمة ليست مصفوفة أو خريطة أو مجموعة ، فإن ' لكل () 'مثل' هدف وما إلى ذلك ، فإن ' TypeError: object.forEach ليس دالة في JavaScript ' يحدث. دعونا نختبر السبب المعلن عمليا.







مثال

في المثال المعطى ، أولاً ، سننشئ كائنًا بخصائصه في زوج المفتاح والقيمة:



مقدار ثابت موضوع = {

اسم : 'ستيفن' و

رولنو : أحد عشر و

موضوعات : 'تجارة'

} ؛

بعد ذلك ، اطبع خصائصه / إدخالاته على وحدة التحكم باستخدام طريقة forEach ():



موضوع. لكل ( ا => {

وحدة التحكم. سجل ( ا ) ؛

} ) ؛

كما ترى في الإخراج ، تمت مصادفة خطأ لأن طريقة forEach لا تنطبق على الكائنات:





كيفية إصلاح الخطأ المحدد؟

لحل الخطأ الموضح أعلاه ، استخدم طرق الكائن مثل ' Object.keys () 'للحصول على مفاتيح في مجموعة ،' Object.values ​​() 'للحصول على قيم الكائن ، أو' مدخلات الكائن () 'لاسترداد جميع إدخالات الكائن. وعلاوة على ذلك، فإن ' Array.from () 'طريقة تحويل الكائن المحدد إلى مصفوفة من الكائنات.



لنجرب مثالاً لحل هذه المشكلة.

مثال 1: إصلاح الخطأ المذكور باستخدام أسلوب Object.entries ()

في هذا المثال ، سنحصل على إدخالات كائن باستخدام ' مدخلات الكائن () 'مع' لكل () 'الذي يعرض مصفوفة من إدخالات الكائن في أزواج المفتاح والقيمة:

هدف . إدخالات ( موضوع ) . لكل ( في => {

وحدة التحكم. سجل ( في ) ؛

} ) ؛

لن يعطي خطأ ، لأن طريقة Object.entries () تحول القيم في المصفوفة وتستخدم طريقة forEach () لتنفيذ الوظيفة المحددة على كل عنصر.

يشير الإخراج إلى أن طريقة forEach () يتم تشغيلها بنجاح على الكائن باستخدام طريقة Object.entries ():

ملحوظة: يتم تطبيق طريقة forEach أيضًا للحصول على مفاتيح وقيم كائن باستخدام أسلوب Object.keys () و Object.values ​​().

الآن ، دعنا نرى ما إذا كنت لا تريد الحصول على مفاتيح الكائن أو قيمه أو إدخالاته ، فماذا ستفعل؟ انظر الى المثال المعطى!

مثال 2: إصلاح الخطأ المذكور باستخدام طريقة Array.from ()

لإصلاح هذا الخطأ ، قم بتحويل الكائن إلى مصفوفة من الكائنات ثم قم بتطبيق التابع forEach () عليه باستخدام ' Array.from () ' طريقة. سيطبع جميع خصائص الكائن دون إعطاء خطأ.

لنحول الكائن أولاً إلى مصفوفة من الكائنات:

مقدار ثابت موضوع = [ {

اسم : 'ستيفن' و

رولنو : أحد عشر و

موضوعات : 'تجارة'

} ]

استدعاء طريقة forEach ():

مجموعة مصفوفة . من ( موضوع ) . لكل ( في => {

وحدة التحكم. سجل ( في ) ؛

} ) ؛

انتاج |

قمنا بتجميع أفضل الحلول الممكنة لإصلاح الخطأ المحدد.

استنتاج

يحدث الخطأ المذكور عند محاولة استخدام ' لكل () 'على قيمة ليست مصفوفة أو مجموعة أو خريطة. لإصلاح هذا الخطأ ، استخدم ' Array.from () ”لتحويل الكائن إلى مصفوفة ثم استخدام التابع forEach () عليه. توضح هذه المقالة حدوث الخطأ المذكور وحله.