Musheera Ahmed
Musheera Ahmed

@MusheeraAh

10 تغريدة 5 قراءة Oct 14, 2021
#ثريد_برمجة
لماذا جاءت #forEach ؟؟
طالما في طرق عدة لعمل الحلقات التكرارية في جافا سكريبت مثل simple for, for in and for of !!
هل أداء forEarch أكبر؟
وما الفرق بين كل هذه الأنواع؟
أولا: forEach
1.هي أحد دوال المصفوفات تم اضافتها ضمن ES6
2.تتميز باها سهلة القراءة وتنفذ دالةcallback مرة واحدة لكل عناصر المصفوفة.
👇
3.الدالة التي يتم استدعائها تستقبل ثلاثة مدخلات الأول هو العنصر الذي سينفذ في الدالة يتبعه ال index ثم المصفوفة (المتغيرين الأخيرين اختياريين)
4.لا نستطيع إيقاف forEach عند تحقيق شرط معين حيث ان return, continue and break لا يتم التعرف عليها.
👇
5.تقوم بتجاوز العناصر التي تم حذفها او فارغه ضمن عملية تسمي ellision
ثانيا: for loop
1.أكثر شيوعا واستخداما للمرور على عناصر المصفوفة.
2.لا يتم تجاوز العناصر الفارغة او المحذوفة بخلاف forEach
3.يمكن الخروج من حلقة التكرار عن طريق return, continue and break بخلاف forEachالتي ستستمر حتى النهاية
ثالثا: For in
1.تعمل مع Objects وتستخدم من اجل زيارة كل المفاتيح للكائن(خاصة بالعنصر او تم وراثتها)
2.تعتبر من الأجزاء الأساسية في لغة جافا سكريبت وليست اضافةES6
👇
3. خيار غيرجيد مع المصفوفات حيث لا تعمل مع الكائنات القابلة للتكرار مثل Array, Set, Mapوقد نحصل على قيم غير مرتبة.
رابعا: For of
1.سمة من سماتES6 تتعامل مع الكائنات القابلة للتكرار Iterable objectمثل المصفوفات
2.إذا أردنا استخدامها مع الكائنات سيظهر خطأTypeError لذلك يتم الاستعانة ب Object. Keys
3.تستخدم مع string بكل سهولة باعتبارها قابلةللتكرار
متى يمكن استخدامforEach؟
1.تستخدم forEach دالة callback تستدعى في كل تكرار فيتكونscope جديد يزيد من بطئ العملية مقارنة بfor
2.لاتستخدامforEachعندما تريد عمل حلقة تكرار تتوقف عند شرط معين
👇
3.مع المدخلات القليلةاستخدامforEachاما مع المدخلات المهولة فانforخيارأمثل لأداء اعلى

جاري تحميل الاقتراحات...