JavaScript'te Iterator Çağrıları
Iterator'ün her ardışık çağrısı özel bir yapıya sahip nesne döndürmelidir. Hadi bu yapıyı inceleyelim. Bir dizimiz olduğunu varsayalım:
let arr = [1, 2, 3];
Dizi iterator'ünü bir değişkene alalım:
let iter = arr[Symbol.iterator]();
Şimdi bu değişkende, next metodu
olan bir nesne bulunmaktadır. Bu metod,
elemanın değerini içeren value anahtarı
ve elemanların tükenip tükenmediği bilgisini
içeren done anahtarı olan bir nesne
döndürecektir:
console.log( iter.next() ); // {value: 1, done: false}
next metodunun ardışık çağrıları
her seferinde bir sonraki elemanı
verecektir:
console.log( iter.next() ); // {value: 1, done: false}
console.log( iter.next() ); // {value: 2, done: false}
console.log( iter.next() ); // {value: 3, done: false}
Elemanlar tükendiği anda ise aşağıdaki değerleri göreceğiz:
console.log( iter.next() ); // {value: undefined, done: true}
Bir Map koleksiyonunun iterator'ünü alın.
Koleksiyonun elemanları tükenene kadar
onu ardışık olarak çağırın.
Bir NodeList koleksiyonunun iterator'ünü alın.
Koleksiyonun elemanları tükenene kadar
onu ardışık olarak çağırın.
Bir HTMLCollection koleksiyonunun iterator'ünü alın.
Koleksiyonun elemanları tükenene kadar
onu ardışık olarak çağırın.