Verschachteltes JSON
Teil des Abschnitts Logik & Ablauf der JavaScript-Journey von Coddy — Lektion 23 von 65.
Ein JSON-Objekt kann ein weiteres JSON-Objekt in sich enthalten. Es kann unendlich tief verschachtelt sein. Zum Beispiel:
const userData = {
"user": {
"name": "Kim",
"address": {
"city": "Springfield",
"zip": 12345,
"location": {
"coordinates": {
"latitude": 42.1234,
"longitude": -71.5678
}
}
}
}
}Um auf einen verschachtelten Schlüssel zuzugreifen, würden wir schreiben:
userData.user.name
userData.user.address.location
// Und so weiterAufgabe
EinfachErstellen Sie eine Funktion namens calculateRestaurantBill, die ein JSON-Objekt als Eingabe erhält, das eine Restaurantbestellung darstellt. Jeder Schlüssel im Objekt ist ein Gerichtsname, und jeder Wert ist ein weiteres Objekt, das Folgendes enthält:
- price (Zahl)
- quantity (Zahl)
- isSpecialOffer (Boolean)
Wenn dieser Wert true ist, gibt es einen Rabatt von 20% auf dieses Gericht. Die Funktion soll:
- Die Gesamtrechnung berechnen
- Alle Rabatte für Sonderangebote anwenden
Das zurückgegebene Objekt enthält:
- totalBeforeDiscount
- totalDiscount
- finalTotal
(Alle Werte sind auf 2 Dezimalstellen gerundet)
Spickzettel
JSON-Objekte können unendlich tief verschachtelt sein:
const userData = {
"user": {
"name": "Kim",
"address": {
"city": "Springfield",
"zip": 12345,
"location": {
"coordinates": {
"latitude": 42.1234,
"longitude": -71.5678
}
}
}
}
}Greifen Sie auf verschachtelte Eigenschaften mit der Punktnotation zu:
userData.user.name
userData.user.address.location
// Und so weiterProbier es selbst
function calculateRestaurantBill(order) {
// Code hier schreiben
return {
totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
totalDiscount: Number(totalDiscount.toFixed(2)),
finalTotal: Number(finalTotal.toFixed(2))
};
}
// Schreiben Sie nichts außerhalb der FunktionDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Strings im Detail
String-GrundlagenÜber Strings iterierenTemplate LiteralsString-MethodenRückblick – String Weaver4JSON Teil 2
Über JSON iterierenVerschachteltes JSONJSON Optional ChainingFlache und tiefe KopieWiederholung – FahrradladenWiederholung – Sonnensystem7Bibliotheksverwaltungssystem
ProjektübersichtBücher hinzufügen2Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysRückblick – 2D-ArraysMatrix-Addition & SubtraktionJagged Arrays3D-Arrays und mehrGängige 2D-Array-MusterRückblick – Alles über Arrays5Sets Teil 1
Was ist ein Set?Iterieren über SetsEin Element hinzufügenEin Element entfernenPrüfen, ob ein Element existiertGröße und Is EmptyCopy und ClearZusammenfassung - Grundlagen von Sets8Arrays: Interessante Themen
Array-DestrukturierungSpread-Syntax in ArraysSparse ArraysWiederholung – Arrays Workshop3JSON Teil 1
Was ist JSON?Prüfen, ob Key existiertObjektmethodenDer Spread-Operator Teil 1Der Spread-Operator Teil 2Keys entfernenWiederholung – JSON-Keys manipulieren