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

Koleksiyonlar üzerinde yineleme

Koleksiyonları değiştirmek neredeyse her zaman yinelemek anlamına gelir: içinden geçmek öğeleri birer birer ve her biri için bir şeyler yapmak. Bu dersimizde temel sözdizimlerine bakın; işlevsel diziler modülünde (harita / filtrele / azalt) bunları daha bildirimsel olarak yazmayı öğreneceğiz.

Diziler için for…of

Bu, bir diziyi yinelemek için neredeyse her zaman kullanmak isteyeceğiniz döngüdür: her adımda değeri çıkarır.

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

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

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 — dikkatli

for…in bir nesnenin anahtarlarını (dizelerini) yineler:

JS
const utente = { nome: 'Anna', eta: 28 };
for (const k in utente) {
  console.log(`${k} = ${utente[k]}`);
}

Object.keys / values / entries

Bunlar bir nesneyi yinelemenin sağlam yoludur. Dizileri döndürürler ve böylece for…of ile çok iyi birleşiyorlar:

JS
const utente = { nome: 'Anna', eta: 28 };

Object.keys(utente); // ['nome', 'eta']
Object.values(utente); // ['Anna', 28]
Object.entries(utente); // [['nome', 'Anna'], ['eta', 28]]

for (const [k, v] of Object.entries(utente)) {
  console.log(`${k} → ${v}`);
}

Klasik for

"Eski tarz" for hala mevcut. Nadiren kullanacaksınız ama faydalıdır indeks üzerinde hassas kontrole ihtiyaç duyduğunuzda (öğeleri atlamak, yinelemek geriye doğru):

JS
for (let i = 0; i < colori.length; i++) {
  console.log(i, colori[i]);
}

// Backwards
for (let i = colori.length - 1; i >= 0; i--) {
  console.log(colori[i]);
}

Deneyin

Egzersiz#js.m3.l4.e1
Denemeler: 0Yükleniyor…

'Sayılar = [3, 5, 7]' verildiğinde, for...of ile yineleme yaparak tüm öğelerin (15) toplamını hesaplayın. Son ifadenin toplam olarak değerlendirilmesi gerekir.

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

for (sayıların sabit n'si) { toplam = toplam + n; }

3 denemeden sonra çözüm mevcut

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

Egzersiz#js.m3.l4.e2
Denemeler: 0Yükleniyor…

`fiyatlar = { mela: 0,4, pera: 0,55, muz: 0,3 }' göz önüne alındığında, Object.keys'i kullanarak nesnedeki (3) TOPLAM giriş SAYISInı döndürün.

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

Object.keys(obj) bir dizi döndürür; .uzunluk kaç tane anahtarın olduğunu söyler.

3 denemeden sonra çözüm mevcut