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); // 15
take
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ı.