Lompati ke konten utama
Modul 5 · Pelajaran 2 dari 418/32 dalam kursus~10 min
Pelajaran modul (2/4)

untuk…dari dan untuk…di

JavaScript memiliki dua loop "ergonomis" yang tidak perlu bingung:

  • for…of mengulangi nilai dari koleksi yang dapat diubah (array, string, Set, Map...).
  • for…in mengulangi kunci yang dapat dihitung dari suatu objek.

Mereka adalah sepupu dekat dan mudah bertukar pikiran — menggunakan bahasa yang salah adalah salah satu bahasa yang pertama perangkap.

for…of untuk array dan string

JS
const colori = ['rosso', 'verde', 'blu'];
for (const c of colori) {
  console.log(c); // 'rosso', 'verde', 'blu'
}

for (const ch of 'abc') {
  console.log(ch); // 'a', 'b', 'c'
}

Itu tidak memberi Anda indeks. Jika Anda juga memerlukan indeks, gunakan entries():

JS
for (const [i, c] of colori.entries()) {
  console.log(i, c); // 0 rosso, 1 verde, 2 blu
}

for…in untuk objek

JS
const utente = { nome: 'Anna', eta: 30, citta: 'Roma' };
for (const chiave in utente) {
  console.log(chiave, utente[chiave]); // 'nome' 'Anna', ...
}

Kapan TIDAK membingungkan mereka

JS
const colori = ['rosso', 'verde', 'blu'];

// SBAGLIATO: stampa gli indici come stringhe!
for (const x in colori) {
  console.log(x); // '0', '1', '2'
}

// GIUSTO
for (const x of colori) {
  console.log(x); // 'rosso', 'verde', 'blu'
}

Cobalah

Latihan#js.m5.l2.e1
Upaya: 0Memuat…

Definisikan `concat(words)` yang, jika diberi daftar string, akan mengembalikan string yang semuanya digabungkan, dipisahkan oleh spasi. Gunakan untuk…dari.

Memuat editor…
Tunjukkan petunjuk

Akumulasi menjadi sebuah string; tambahkan spasi hanya jika itu bukan kata pertama.

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#js.m5.l2.e2
Upaya: 0Memuat…

Definisikan `positifValues(obj)` yang mengembalikan array dengan nilai objek berupa angka > 0. Gunakan untuk…in. Urutannya harus sesuai dengan urutan iterasi kunci.

Memuat editor…
Tunjukkan petunjuk

Ulangi dengan for...in pada tombol, filter dengan typeof dan > 0, masukkan hasilnya.

Solusi tersedia setelah 3 upaya