“JavaScript Iterables: Nesnelerin Üzerinde Yineleme Yapmak”

JavaScript Rehberi

JavaScript’te Iterables, bir nesnenin elemanlarını sırayla dolaşmamıza olanak tanıyan bir yapıdır. Bu yapı, bir dizi gibi elemanları birbirine bağlayan ancak diziden farklı olarak daha geniş bir yelpazede kullanılabilecek bir yapıdır.

Iterable ve Iterator Kavramları

Iterable, bir nesnenin yineleme yapılabilir olduğunu belirten bir özelliktir. Iterable nesneler, Symbol.iterator özelliğine sahiptirler ve bu özellik bir iterator nesnesi döndürmelidir. Iterator ise, bir iterable üzerinde ileriye doğru yineleme yapmamızı sağlar. Bu iterator nesnesi, next() metodunu kullanarak her bir elemana sırasıyla erişmemizi sağlar.

Örnek Kod Blokları:

/ Bir Array Iterable'ı oluşturma
const numbers = [1, 2, 3, 4, 5];

// Iterable olup olmadığını kontrol etme
console.log(typeof numbers[Symbol.iterator]); // function

// Iterator oluşturma
const iterator = numbers[Symbol.iterator]();

// İterator ile yineleme yapma
console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: 4, done: false }
console.log(iterator.next()); // { value: 5, done: false }
console.log(iterator.next()); // { value: undefined, done: true }

Yukarıdaki kod bloğunda, bir dizi oluşturduk ve onun üzerinde yineleme yapılabilirliğini kontrol ettik. Daha sonra, dizinin Symbol.iterator özelliğini kullanarak bir iterator oluşturduk ve bu iterator ile dizinin her bir elemanına sırasıyla eriştik.

// Bir özel iterable oluşturma
const myIterable = {
  *[Symbol.iterator]() {
    yield 1;
    yield 2;
    yield 3;
  }
};

// Iterator oluşturma
const myIterator = myIterable[Symbol.iterator]();

// İterator ile yineleme yapma
console.log(myIterator.next()); // { value: 1, done: false }
console.log(myIterator.next()); // { value: 2, done: false }
console.log(myIterator.next()); // { value: 3, done: false }
console.log(myIterator.next()); // { value: undefined, done: true }

Bu örnekte, özel bir iterable nesne oluşturduk ve bu iterable nesne üzerinde yineleme yapabilmek için bir generator fonksiyon kullandık. Generator fonksiyon, asterisk (*) sembolü ile işaretlenmiş ve içinde yield ifadeleri bulunmuştur. Bu sayede, myIterable üzerinde yineleme yaparken her bir değeri yield ifadesi ile döndürebiliriz.

Sonuç

JavaScript’te Iterables ve Iterators, nesneler üzerinde etkili bir şekilde yineleme yapmamızı sağlar. Bu yapılar, birçok farklı veri yapısında ve veri koleksiyonunda kullanılabilir ve yineleme işlemlerini kolaylaştırır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir