JSON المتداخل
جزء من قسم المنطق وتدفق التنفيذ في رحلة JavaScript على Coddy. الدرس 23 من 65.
يمكن لكائن JSON أن يحتوي على كائن JSON آخر بداخله. يمكن أن يكون متداخلاً بشكل لا نهائي. على سبيل المثال:
const userData = {
"user": {
"name": "Kim",
"address": {
"city": "Springfield",
"zip": 12345,
"location": {
"coordinates": {
"latitude": 42.1234,
"longitude": -71.5678
}
}
}
}
}للوصول إلى مفتاح متداخل، سنكتب:
userData.user.name
userData.user.address.location
// وهكذاالتحدي
سهلقم بإنشاء دالة تسمى calculateRestaurantBill تأخذ كائن JSON يمثل طلب مطعم كمدخل. كل مفتاح في الكائن هو اسم طبق، وكل قيمة هي كائن آخر يحتوي على:
- price (رقم)
- quantity (رقم)
- isSpecialOffer (قيمة منطقية)
إذا كانت القيمة true، فهناك خصم بنسبة 20% على ذلك الطبق. يجب على الدالة:
- حساب إجمالي الفاتورة
- تطبيق أي خصومات للعروض الخاصة
يحتوي الكائن المرتجع على:
- totalBeforeDiscount
- totalDiscount
- finalTotal
(يتم تقريب جميع القيم إلى منزلتين عشريتين)
جرّب بنفسك
function calculateRestaurantBill(order) {
// اكتب الكود هنا
return {
totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
totalDiscount: Number(totalDiscount.toFixed(2)),
finalTotal: Number(finalTotal.toFixed(2))
};
}
// لا تكتب أي شيء خارج الدالةيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
أساسيات السلاسل النصيةالتكرار عبر السلاسل النصيةTemplate Literalsدوال السلاسل النصيةمراجعة - String Weaver4JSON الجزء الثاني
التكرار عبر JSONJSON المتداخلالتسلسل الاختياري في JSONالنسخ السطحي والعميقمراجعة - متجر الدراجاتمراجعة - النظام الشمسي2المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات5المجموعات - الجزء الأول
ما هي المجموعة؟التكرار عبر المجموعاتإضافة عنصرإزالة عنصرالتحقق من وجود عنصرالحجم وهل هي فارغةالنسخ والمسحملخص - أساسيات المجموعات8مواضيع شيقة حول الـ Arrays
تفكيك الـ Arrayاستخدام الـ Spread Syntax في الـ Arraysالـ Sparse Arraysمراجعة - ورشة عمل الـ Arrays3JSON الجزء الأول
ما هو JSON؟التحقق من وجود المفتاحObject MethodsSpread Operator الجزء الأولSpread Operator الجزء الثانيحذف المفاتيحمراجعة - معالجة مفاتيح JSONتدرّب بنفسك: مترجم JavaScript عبر الإنترنت