الدرس 5 من 8

لا تعدّل، اصنع جديدًا

هدف الدرس

لماذا تُجمَّد البيانات

01

الشرح

حين تُعدّل مصفوفة في مكانها، يضيع ما كانت عليه. ومعه يضيع أبسط سؤال: ما الذي تغيّر؟ — وعليه يقوم التراجع والمقارنة وكشف التغيّر في كل مكتبة واجهات.

البديل أن كل تغيير يُنتج قيمة جديدة: [...list, item] بدل push، وlist.filter(x => x !== y) بدل splice، و{...obj, key: v} بدل الإسناد المباشر.

والمصفوفة هنا Object.freeze — فأي محاولة تعديل في الوضع الصارم ترمي خطأً بدل أن تنجح صامتة.

02

المطلوب

اجعل الإضافة والحذف يعملان بلا تعديل state.items، مع بقاء عدّاد التغييرات صحيحًا.

معايير التصحيح

5 معايير
  1. القائمة تبدأ بثلاثة عناصر
  2. الإضافة تعمل بلا خطأ
  3. الحذف يزيل الأول
  4. المصفوفة الجديدة مرجع آخر لا المعدَّلة نفسها
  5. عدّاد التغييرات يتبع كل عملية
index.html
المعاينة
index.html100%
–/5

اضغط «تشغيل» ليبدأ الفحص.

5 معايير في بطاقة «المطلوب».