Menu
CoddyTech

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
// وهكذا دواليك
challenge icon

التحدي

سهل

أنشئ دالة باسم calculateRestaurantBill تأخذ كمدخل كائن JSON يمثّل طلبًا من مطعم. كل مفتاح في الكائن هو اسم طبق، وكل قيمة هي كائن آخر يحتوي على:

  • price (عدد)
  • quantity (عدد)
  • isSpecialOffer (قيمة منطقية) 

إذا كانت القيمة true، فهناك خصم بنسبة 20% على ذلك الطبق. يجب أن تقوم الدالة بما يلي:

  1. حساب إجمالي الفاتورة
  2. تطبيق أي خصومات للعروض الخاصة

يحتوي الكائن المُعاد على:

  • totalBeforeDiscount
  • totalDiscount
  • finalTotal

(تُقرَّب جميع القيم إلى منزلتين عشريتين)

جرّب بنفسك

function calculateRestaurantBill(order) {
    // اكتب الكود هنا
    
    
    return {
        totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
        totalDiscount: Number(totalDiscount.toFixed(2)),
        finalTotal: Number(finalTotal.toFixed(2))
    };
}
// لا تكتب أي شيء خارج الدالة
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم JavaScript عبر الإنترنت

نسّق أي JSON واستكشفه: مُنسق JSON