Menu
Coddy logo textTech

İç İçe Geçmiş JSON

Coddy'nin JavaScript Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 23 / 65.

Bir JSON nesnesi, içinde başka bir JSON nesnesi barındırabilir. Sonsuz şekilde iç içe geçebilir. Örneğin:

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

İç içe geçmiş bir anahtara erişmek için şöyle yazarız:

userData.user.name
userData.user.address.location
// Ve benzeri
challenge icon

Görev

Kolay

Girdi olarak bir restoran siparişini temsil eden bir JSON nesnesi alan calculateRestaurantBill adında bir fonksiyon oluşturun. Nesnedeki her anahtar bir yemek adıdır ve her değer aşağıdakileri içeren başka bir nesnedir:

  • price (sayı)
  • quantity (sayı)
  • isSpecialOffer (boolean) 

eğer true ise, o yemekte %20 indirim uygulanır. Fonksiyon şunları yapmalıdır:

  1. Toplam faturayı hesaplamalı
  2. Varsa özel teklif indirimlerini uygulamalı

Döndürülen nesne şunları içerir:

  • totalBeforeDiscount
  • totalDiscount
  • finalTotal

(Tüm değerler virgülden sonra 2 basamağa yuvarlanır)

Kopya kağıdı

JSON nesneleri sonsuz derinlikte iç içe yerleştirilebilir:

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

Nokta notasyonunu kullanarak iç içe geçmiş özelliklere erişin:

userData.user.name
userData.user.address.location
// Ve bu şekilde devam eder

Kendin dene

function calculateRestaurantBill(order) {
    // Kodu buraya yazın
    
    
    return {
        totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
        totalDiscount: Number(totalDiscount.toFixed(2)),
        finalTotal: Number(finalTotal.toFixed(2))
    };
}
// Fonksiyon dışına hiçbir şey yazmayın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler