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 dalejWyzwanie
ŁatwyUtwó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:
- Obliczyć łączny rachunek
- 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ą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
1Napisy w praktyce
Podstawy napisówIterowanie po napisachLiterały szablonoweMetody napisówPodsumowanie – mistrz napisów4JSON, część 2
Iterowanie po JSONZagnieżdżony JSONOpcjonalne łańcuchowanie w JSONPłytka i głęboka kopiaPowtórka — sklep rowerowyPowtórka — Układ Słoneczny7System zarządzania biblioteką
Omówienie projektuDodawanie książek10Zarządzanie systemem festiwalowym
Przegląd projektuDodawanie filmów i miejsc2Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DZagnieżdżone pętle z tablicami 2DPowtórka — tablice 2DDodawanie i odejmowanie macierzyTablice nieregularneTablice 3D i większeTypowe wzorce tablic 2DPowtórka — wszystko o tablicach5Zbiory — część 1
Czym jest zbiór?Iterowanie po zbiorachDodawanie elementuUsuwanie elementuSprawdzanie, czy element istniejeRozmiar i sprawdzanie, czy zbiór jest pustyKopiowanie i czyszczeniePodsumowanie — podstawy zbiorów8Ciekawe zagadnienia dotyczące tablic
Destrukturyzacja tablicSkładnia spread w tablicachRzadkie tablicePodsumowanie – warsztaty z tablic3JSON część 1
Czym jest JSON?Sprawdzanie, czy klucz istniejeMetody obiektówOperator spread — część 1Operator spread — część 2Usuwanie kluczyPodsumowanie — manipulowanie kluczami w JSONPoćwicz samodzielnie: Kompilator JavaScript online