الدرس 6 من 8

تفكيك الكائنات والمصفوفات

هدف الدرس

استخراج القيم في سطر واحد

01

الشرح

التفكيك (destructuring) يستخرج القيم من كائن أو مصفوفة ويضعها في متغيّرات بسطر واحد، فتكتب const { name, city } = user بدل سطرين تكرّر فيهما user.، وتكتب const [first] = list لتأخذ من المصفوفة حسب الترتيب لا حسب الاسم.

ويأتي معه أمران مفيدان، الأول القيمة الافتراضية مثل { city = 'غير محدّدة' }، وتُستعمل حين تكون الخاصية undefined لا حين تكون null، والثاني إعادة التسمية مثل { posts: count } حين لا يناسبك اسم الخاصية. وأنفع مكان للتفكيك هو مُعامِلات الدالة (parameters)، لأنك تعرف ما تحتاجه الدالة بمجرّد قراءة سطر تعريفها.

وانتبه إلى خطأ شائع، فتفكيك كائن داخلي غير موجود يوقف البرنامج بخطأ، إذ يعطي { stats: { posts } } الخطأ TypeError مع مستخدم ليس عنده stats، والحلّ أن تعطي هذا المستوى نفسه قيمة افتراضية هكذا: { stats: { posts } = {} }.

02

المطلوب

أعد كتابة describe بحيث تفكّك مُعامِلها في سطر تعريفها مباشرة، فتأخذ city بقيمة افتراضية «غير محدّدة»، وتأخذ posts من داخل stats باسم count وبقيمة افتراضية 0 حتى لو لم يوجد stats أصلًا، ثم تأخذ الاسم الأول بتفكيك المصفوفة التي يُرجعها name.split(' ').

الفحوص

6 فحوص
  1. مع البيانات الكاملة يظهر الاسم الأول والمدينة والعدد
  2. المدينة غير الموجودة تصير «غير محدّدة»
  3. عدم وجود stats لا يسبّب خطأً ويعطي 0
  4. عدم وجود posts داخل stats يعطي 0
  5. المُعامِل مفكَّك في سطر تعريف الدالة
  6. الاسم الأول مأخوذ بتفكيك مصفوفة
03

تلميحات

0/3
index.html
المعاينة
index.html100%
–/6

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

تجد 6 فحوص في بطاقة «المطلوب».