Ana içeriğe geç
Modül 5 · Ders 2 ders 4Kurstaki 18/32~10 min
Modül dersleri (2/4)

için... ve için... içinde

JavaScript'te karıştırılmaması gereken iki "ergonomik" döngü bulunur:

  • for…of yinelenebilir bir koleksiyonun (dizi, dize, Küme, Harita...) değerlerini yineler.
  • for…in bir nesnenin numaralandırılabilir anahtarlarını yineler.

Yakın kuzenlerdir ve kolayca yer değiştirirler; yanlış olanı kullanmak dilin ilk davranışlarından biridir. tuzaklar.

Diziler ve dizeler için for…of

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'
}

Size indeks vermiyor. Dizine de ihtiyacınız varsa entries() kullanın:

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

Nesneler için for…in

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

Ne zaman karıştırılmamalı

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'
}

Deneyin

Egzersiz#js.m5.l2.e1
Denemeler: 0Yükleniyor…

Bir dize listesi verildiğinde, tümünün birleştirilmiş ve bir boşlukla ayrılmış olduğu bir dize döndüren `concat(words)'ı tanımlayın. ...için kullanın.

Düzenleyici yükleniyor…
İpucu göster

Bir dize halinde biriktirin; boşluğu yalnızca ilk kelime değilse ekleyin.

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#js.m5.l2.e2
Denemeler: 0Yükleniyor…

Nesnenin değerleri > 0 olan bir dizi döndüren `positiveValues(obj)`ı tanımlayın. for…in kullanın. Sıra, anahtarların yineleme sırasına uygun olmalıdır.

Düzenleyici yükleniyor…
İpucu göster

Tuşların üzerinde for...in ile döngü yapın, typeof ve > 0 ile filtreleyin, sonuçlara itin.

3 denemeden sonra çözüm mevcut