İç İç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 benzeriGörev
KolayGirdi 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:
- Toplam faturayı hesaplamalı
- 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 ederKendin 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ınBu 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
1Derinlemesine Stringler
String TemelleriString Üzerinde YinelemeTemplate LiteralsString MetotlarıÖzet - String Weaver4JSON Bölüm 2
JSON Üzerinde Yinelemeİç İçe Geçmiş JSONJSON Optional ChainingSığ ve Derin KopyalamaÖzet - Bisiklet MağazasıÖzet - Güneş Sistemi7Kütüphane Yönetim Sistemi
Projeye Genel BakışKitap Ekleme10Festival Sistemi Yönetimi
Projeye Genel BakışFilm ve Mekan Ekle2Çok Boyutlu Diziler
2D Dizi Temelleri2D Dizi Elemanlarına Erişme2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaDüzensiz Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey5Kümeler Bölüm 1
Küme Nedir?Kümeler Üzerinde YinelemeEleman EklemeEleman SilmeEleman Varlığını Kontrol EtmeBoyut ve Boş Olma DurumuKopyalama ve TemizlemeÖzet - Kümelerin Temelleri8Diziler: İlginç Konular
Dizi Yapı SökümüDizilerde Spread SözdizimiSeyrek DizilerÖzet - Diziler Workshop3JSON Bölüm 1
JSON Nedir?Anahtarın Varlığını Kontrol EtmeNesne MetotlarıSpread Operatörü Bölüm 1Spread Operatörü Bölüm 2Anahtarları KaldırmaÖzet - JSON Anahtarlarını Yönetme