Yaygın iterable'lar
Dizi, dize, NodeList ve Map gibi yaygın iterable'ları öğrenirsin.
Yaygın iterable'lar
JavaScript'in birçok yerleşik veri türü iterable'dır. Diziler elemanlarını, dizeler karakterleri, Map [key, value] çiftlerini, Set benzersiz değerleri verir. Bunların hepsi [Symbol.iterator] metoduna sahiptir.
Tarayıcıda document.querySelectorAll bir NodeList döndürür; o da iterable'dır. Böylece for...of ile tüm matched öğeleri gezebilirsin. arguments nesnesi ise iterable değildir; eski kodlarda diziye çevirmeden gezmek için rest parametresi kullanılır.
NodeList ve dizelere dikkat
Bir dize üzerinde for...of döndüğünde her adımda bir karakter alırsın; Türkçe karakterler de dahil tek bir karakter olarak gelir. NodeList ise DOM öğelerini sırayla verir; forEach de supportlar ama map veya filter yoktur.
Bu yüzden bir NodeList'i dönüştürmek için [...nodes] ile diziye çevirip dizi metotlarını kullanmak yaygın bir yaklaşımdır. Spread operatörü de arka planda iterator protokolünü kullanır.
Uygulama Dizedeki harfleri say
text adında bir dize tanımla (örn. "merhaba"). let count = 0 ile sayaç aç. for...of ile dizenin karakterlerini gez; her "a" harfinde count++ yap. Sonra console.log(count) ile sonucu yazdır.
Örnek çözümü göster
const text = "merhaba";
let count = 0;
for (const ch of text) {
if (ch === "a") {
count++;
}
}
console.log(count);
Kendini test et
-
Hangisi for...of ile gezilebilir?
- Bir sayı değişkeni
- null değeri
- Bir Map nesnesi
- true değeri
Cevabı göster
Bir Map nesnesi — Doğru. Map iterable'dır; for...of ile [key, value] çiftleri gelir.
-
Dize üzerinde for...of
const word = "merhaba"; for (const ch ____ word) { console.log(ch); }Cevabı göster
const word = "merhaba"; for (const ch of word) { console.log(ch); } -
Yerleşik iterable'lar
- Dizi
- Elemanları verir
- Dize
- Karakterleri verir
- Map
- [key, value] çiftleri
- Set
- Benzersiz değerleri