جافا سكريبت: forEach ليس وظيفة وماذا تفعل؟

حلقات لوك جونز

ما هي الحلقة؟

الحلقة هي تعليمات برمجة ستؤدي إلى قيام برنامج كمبيوتر بتنفيذ نفس مجموعة التعليمات مرارًا وتكرارًا طالما أن شرطًا معينًا صحيحًا.

الحلقات التقليدية

الحلقات التقليدية في البرمجة الوظيفية هي حلقات for and while. تُستخدم هذه الحلقات لتنفيذ سلسلة من العبارات أو التعليمات بشكل متكرر. تنفذ حلقة for مجموعة من العبارات حتى يتم استيفاء شرط معين ، بينما تنفذ حلقة while مجموعة من العبارات طالما كان الشرط صحيحًا.

جافا سكريبت لكل حلقة

طريقة forEach هي إضافة تكرار جافا سكريبت ES5 تقوم بتنفيذ التعليمات البرمجية في وظيفة السهم لكل عنصر في المصفوفة. يمكن استخدامه للتكرار من خلال مصفوفات من أي نوع وحجم ، خريطة أو مجموعة.

إنها مختلفة عن "حلقة for" التقليدية. يمرر forEach وظيفة رد نداء لكل عنصر من عناصر المصفوفة بالمعلمات التالية: القيمة الحالية (مطلوبة) - فهرس المصفوفة الحالية.

const techBlog = ['Nerd'، 'Level'، 'Tech'] techBlog.forEach ((item، index) => {console.log (index، item)}) // Output // ===== // 0 الطالب الذي يذاكر كثيرا // 1 المستوى // 2 التقنية

خطأ شائع متعلق - لكل:

سننشئ هذا الخطأ من النوع "forEach ليس دالة." ، إذا استخدمنا forEach كما في المثال أدناه:

const nums = {"number 1": 1، "number 2": 2، "number 3": 3، "number 4": 4} nums.forEach ((num) => {console.log (num)؛} ) ؛ // إخراج الخطأ أسفل الصورة. 

في حالة الاستخدام المذكورة أعلاه ، يمكننا استخدام forEach مع الكائنات ولكن ليس بشكل مباشر. لإصلاح بسيط يمكننا استخدامه مع كائن المفاتيح المضمنة لأنه يقوم بإرجاع مصفوفة من المفاتيح أو أي كائن يشبه المصفوفة ، والذي يمكن في هذه الحالات ربطه مباشرة بـ forEach.

const nums = {"number 1": 1، "number 2": 2، "number 3": 3، "number 4": 4} Object.keys (nums) .forEach (key => {console.log (key + ":" + أرقام [مفتاح]) ؛}) ؛ // OR Object.entries (nums) .forEach (([key، value]) => {console.log (key + "-" + value)؛})؛ 

الختام - السبب الأكثر شيوعًا :

أ- استدعاء "forEach" على قيمة ليست من نوع مصفوفة أو Map أو Set سينتج عنه الخطأ "forEach ليس دالة." لإصلاح ذلك ، تأكد من استخدامه على مصفوفة أو خريطة أو تعيين بدلاً من ذلك

ب- يمكنك أيضًا console.log للكائن والتحقق من أنه كائن من النوع Array أو Map أو Set. إذا كان نوع الكائن هو كائن ، فيجب أولاً تحويله إلى هذه الأنواع المسموح بها "صفيف أو خريطة أو تعيين" ثم قم بإرفاق forEach به.

ج- إذا تم جلبه من خادم بعيد ، فتأكد من أنك قمت بتحليل كائن JSON إلى مصفوفة JavaScript أصلية أولاً.

https://ahmedradwan.dev

تواصل معنا إذا كنت ترغب في الانضمام إلي وكتابة مقالات مع المهووسين 🙂


2 أفكار حول " جافا سكريبت: لكل منها ليست وظيفة وماذا تفعل؟ "

  1. https://www.echojs.com/comment/41193/1

    هذا يتعلق بتكرار كائن ... ربما يجب أن تذكر أيضًا أنه إذا كنت تتوقع مصفوفة ، قد تكون فارغة / غير محددة ، فيمكنك استخدام تسلسل اختياري.

    myArray؟. لكل (...)

    كما هو مذكور في المقال ، لديك Object.entries. ربما ينبغي أيضًا ذكر Object.keys و Object.values.

    IIRC Array.prototype.forEach كان ES5 (وليس 6) ، بينما تمت إضافة مدخلات Object مع ES6 / ES2017.

اترك ردًا

لن يتم نشر عنوان بريدك الإلكتروني. الحقول المطلوبة محددة *