Cara bermain Destructuring Paket
- Baca instruksi level. Variabel yang dicari tampil sebagai slot putus-putus di arena.
- Tulis kodemu di editor, di dalam fungsi
bongkar(paket). Arena menjalankannya ulang sesaat setelah kamu berhenti mengetik. - Nomor di slot muncul juga di baris paket tempat nilainya diambil. Slot bergaris hijau sudah sesuai.
- Kodemu dijalankan untuk tiga paket. Klik resi di atas arena untuk melihat paket lain, termasuk paket yang field-nya hilang atau bernilai
null. - Tekan Cek jawaban atau Ctrl + Enter. Nilai harus benar di semua paket dan kodenya memakai destructuring.
- Kalau buntu, buka Petunjuk. Petunjuk pertama mengarahkan, petunjuk terakhir hampir menjawab.
Yang kamu pelajari
- Level 1
Destructuring objek
const { resi, nama } = paketmembuat variabel dari field dengan nama yang sama. - Level 2
Ganti nama
{ berat: kg }membaca fieldberatdan menyimpannya di variabelkg. - Level 3
Nilai default
{ asuransi = false }dipakai saat field-nya tidak ada di objek. - Level 4
Default hanya untuk undefined
nulldianggap nilai yang sengaja diisi, jadi default tidak dipakai. Ini beda dengan||. - Level 5
Pola bersarang
{ penerima: { kota } }masuk ke objek di dalam objek tanpa menulispaket.penerima.kota. - Level 6
Destructuring array
Pola array membaca berdasarkan urutan. Koma kosong melewati satu isi.
- Level 7
Rest di array
[utama, ...lainnya]mengumpulkan sisa isi jadi array baru. - Level 8
Rest di objek
{ resi, ...sisa }membuat objek baru berisi semua field kecuali yang sudah disebut. - Level 9
Tukar variabel
[a, b] = [b, a]menukar isi dua variabel tanpa variabel sementara. - Level 10
Destructuring di parameter
Pola bisa ditulis di tempat parameter, jadi fungsi langsung menerima field yang dibutuhkan.
- Level 11
Default untuk seluruh parameter
= {}sesudah pola parameter membuat fungsi aman dipanggil tanpa argumen.
Default dipakai saat undefined, bukan saat kosong
Di const { catatan = "-" } = paket, nilai "-" hanya dipakai kalau paket.catatan bernilai undefined, baik karena field-nya memang tidak ada maupun karena diisi undefined. Kalau isinya null, 0, atau teks kosong, nilai itu yang masuk ke variabel.
Ini berbeda dengan paket.catatan || "-", yang mengganti semua nilai falsy. Pakai default destructuring (atau ??) kalau null berarti "sengaja dikosongkan" dan harus tetap terbaca begitu.
Tanya jawab
Apakah harus daftar akun untuk bermain?
Tidak. Semua level bisa dimainkan tanpa akun. Kemajuanmu disimpan di browser yang kamu pakai, jadi akan hilang kalau data browser dihapus.
Di mana kodeku dijalankan?
Di Web Worker di dalam iframe terpisah, bukan di halaman ini. Kodemu tidak bisa membaca cookie atau data Mahir, dan perulangan yang tidak berhenti dihentikan setelah 1 detik.
Kenapa kodeku dijalankan untuk tiga paket?
Supaya yang dinilai polanya, bukan nilai yang ditulis langsung. Paket kedua tidak punya asuransi dan catatan-nya null, paket ketiga isinya lebih panjang. Kode yang benar di satu paket belum tentu benar di paket lain.
Nilainya sudah benar, kenapa masih ditolak?
Game ini melatih destructuring, jadi selain nilainya, kodemu juga dicek memakai bentuk yang diminta level itu, misalnya { berat: kg } atau = {} di parameter. const kg = paket.berat memberi nilai yang sama tapi bukan latihan yang dimaksud.
Kenapa tujuan() tanpa argumen bisa error?
Memanggil fungsi tanpa argumen membuat parameternya undefined, dan undefined tidak bisa dibongkar. Browser melempar TypeError: Cannot destructure property. Default = {} memberi objek kosong untuk dibongkar, lalu default tiap field mengisi sisanya.