Menu
CoddyTech

Menelusuri dictionary

Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 15 dari 56.

Melakukan iterasi pada dictionary dengan for memberikan kedua bagian dari setiap pasangan sebagai tuple:

let prices = ["apple": 1, "bread": 3, "milk": 4]
for (item, price) in prices {
    print("\(item) costs \(price)")
}

Urutan iterasi tidak dijamin. Jalankan perulangan dua kali dan kamu mungkin melihat entri dalam urutan yang berbeda. Jika urutan penting, urutkan terlebih dahulu:

for (item, price) in prices.sorted(by: { $0.key < $1.key }) {
    print("\(item): \(price)")
}

Ekspresi di dalam sorted(by:) adalah closure: ekspresi ini membandingkan dua pasangan ($0 dan $1) berdasarkan property key-nya. Closure akan dibahas dalam bab tersendiri nanti. Untuk sekarang, anggap ini sebagai resep untuk mengurutkan dictionary.

Dua property lain yang berguna: .keys dan .values memberimu koleksi yang hanya berisi key atau nilai.

challenge icon

Tantangan

Mudah

dictionary scores memetakan nama siswa ke skor Int. Cetak:

  1. Setiap entri sebagai <name>: <score>, diurutkan berdasarkan nama secara alfabetis, satu entri per baris
  2. Sum: <total> dari semua nilai (gunakan .values dan reduce)
  3. Above 70: <count> dengan count adalah jumlah entri yang memiliki skor lebih besar dari 70

Untuk dictionary bawaan, output-nya adalah:

Alice: 85
Bob: 60
Cara: 90
Dan: 72
Sum: 307
Above 70: 3

Coba sendiri

let scores: [String: Int] = [
    "Alice": 85, "Bob": 60, "Cara": 90, "Dan": 72
]

// TODO: cetak entri yang sudah diurutkan; jumlahkan dengan reduce pada .values; hitung nilai > 70
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Playground Swift