Sync Iterator Helpers, senkron iteratörlere yeni metodlar ekleyerek, iterasyon işlemlerini daha kolay ve okunabilir hale getirir. Bu metodlar, map, filter, reduce, take, drop gibi işlemleri iteratörler üzerinde uygulama imkanı sunar. Bu sayede, iterasyon işlemleri daha fonksiyonel bir şekilde gerçekleştirilebilir.
map metodu, iteratördeki her bir öğeyi belirli bir fonksiyona göre dönüştürür.
const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();
const doubled = iterator.map(x => x * 2);
for (const value of doubled) {
console.log(value); // 2, 4, 6, 8, 10
}filter metodu, iteratördeki öğeleri belirli bir koşula göre filtreler.
const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();
const evens = iterator.filter(x => x % 2 === 0);
for (const value of evens) {
console.log(value); // 2, 4
}reduce metodu, iteratördeki öğeleri tek bir değere indirger.
const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();
const sum = iterator.reduce((acc, x) => acc + x, 0);
console.log(sum); // 15take metodu, iteratörden belirli sayıda öğe alır.
const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();
const firstThree = iterator.take(3);
for (const value of firstThree) {
console.log(value); // 1, 2, 3
}drop metodu, iteratördeki belirli sayıda öğeyi atlar.
const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();
const afterTwo = iterator.drop(2);
for (const value of afterTwo) {
console.log(value); // 3, 4, 5
}flatMap metodu, iteratördeki her bir öğeyi bir diziye dönüştürür ve ardından bu dizileri tek bir düzleştirilmiş iteratöre dönüştürür.
const numbers = [1, 2, 3];
const iterator = numbers.values();
const flattened = iterator.flatMap(x => [x, x * 10]);
for (const value of flattened) {
console.log(value); // 1, 10, 2, 20, 3, 30
}toArray metodu, iteratördeki tüm öğeleri bir diziye dönüştürür.
const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();
const array = iterator.toArray();
console.log(array); // [1, 2, 3, 4, 5]forEach metodu, iteratördeki her bir öğe için bir fonksiyon çalıştırır.
const numbers = [1, 2, 3, 4, 5];
const iterator = numbers.values();
iterator.forEach(x => console.log(x)); // 1, 2, 3, 4, 5- Fonksiyonel Programlama: Iterasyon işlemlerini daha fonksiyonel bir şekilde gerçekleştirme imkanı.
- Okunabilirlik: Kodun daha okunabilir ve anlaşılır olması.
- Esneklik: Iteratörler üzerinde daha esnek işlemler yapma imkanı.