Menu
Coddy logo textTech

Zagnieżdżony JSON

Część sekcji Logika i przepływ programu ścieżki JavaScript w Coddy. Lekcja 23 z 65.

Obiekt JSON może zawierać inny obiekt JSON. Można je zagnieżdżać bez końca. Na przykład:

const userData = {
  "user": {
    "name": "Kim",
    "address": {
      "city": "Springfield",
      "zip": 12345,
      "location": {
        "coordinates": {
          "latitude": 42.1234,
          "longitude": -71.5678
        }
      }
    }
  }
}

Aby uzyskać dostęp do zagnieżdżonego klucza, napisalibyśmy:

userData.user.name
userData.user.address.location
// I tak dalej
challenge icon

Wyzwanie

Łatwy

Utwórz funkcję o nazwie calculateRestaurantBill, która przyjmuje jako dane wejściowe obiekt JSON reprezentujący zamówienie w restauracji. Każdy klucz w obiekcie to nazwa dania, a każda wartość to kolejny obiekt zawierający:

  • price (liczba)
  • quantity (liczba)
  • isSpecialOffer (wartość logiczna) 

jeśli ma wartość true, na to danie przysługuje zniżka 20%. Funkcja powinna:

  1. Obliczyć łączny rachunek
  2. Zastosować wszelkie zniżki wynikające z ofert specjalnych

Zwrócony obiekt zawiera:

  • totalBeforeDiscount
  • totalDiscount
  • finalTotal

(Wszystkie wartości są zaokrąglane do 2 miejsc po przecinku)

Spróbuj swoich sił

function calculateRestaurantBill(order) {
    // Napisz kod tutaj
    
    
    return {
        totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
        totalDiscount: Number(totalDiscount.toFixed(2)),
        finalTotal: Number(finalTotal.toFixed(2))
    };
}
// Nie pisz niczego poza funkcją
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator JavaScript online