Menu
Coddy logo textTech

JSON annidato

Fa parte della sezione Logica e flusso del percorso JavaScript di Coddy. Lezione 23 di 65.

Un oggetto JSON può contenere al suo interno un altro oggetto JSON. Può essere annidato all'infinito. Per esempio:

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

Per accedere a una chiave annidata scriveremmo:

userData.user.name
userData.user.address.location
// E così via
challenge icon

Sfida

Facile

Crea una funzione chiamata calculateRestaurantBill che accetta in input un oggetto JSON che rappresenta un ordine al ristorante. Ogni chiave dell’oggetto è il nome di un piatto e ogni valore è un altro oggetto contenente:

  • price (numero)
  • quantity (numero)
  • isSpecialOffer (booleano) 

se è true, su quel piatto viene applicato uno sconto del 20%. La funzione dovrebbe:

  1. Calcolare il conto totale
  2. Applicare gli eventuali sconti delle offerte speciali

L’oggetto restituito contiene:

  • totalBeforeDiscount
  • totalDiscount
  • finalTotal

(Tutti i valori sono arrotondati a 2 cifre decimali)

Provalo tu

function calculateRestaurantBill(order) {
    // Scrivi il codice qui
    
    
    return {
        totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
        totalDiscount: Number(totalDiscount.toFixed(2)),
        finalTotal: Number(finalTotal.toFixed(2))
    };
}
// Non scrivere nulla al di fuori della funzione
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore JavaScript online