JavaScript'te Yinelemeli Nesne Oluşturma

Gerçek bir yinelemeli nesne oluşturalım, for-of döngüsüyle üzerinden geçilebilen. Bunun için nesneye Symbol.iterator içinde ilgili fonksiyonu eklememiz gerekiyor.

Haydi gerçekleştirelim. Elimizde aşağıdaki nesne olsun:

javascriptlet obj = {
  a: 1,
  b: 2,
  c: 3,
};

Symbol.iterator içine bir fonksiyon ekleyelim:

javascriptobj[Symbol.iterator] = function() {

}

Bu fonksiyonu bir jeneratöre dönüştürelim:

javascriptobj[Symbol.iterator] = function *() {

}

Fonksiyonumuzun içinde this nesnenin kendisine referans verecek:

javascriptobj[Symbol.iterator] = function *() {
  console.log(this); // nesnenin kendisi
}

Yineleyicide nesneyi döngüye sokalım:

javascriptobj[Symbol.iterator] = function *() {
  for (let key in this) {
    yield obj[key];
  }
}

İşte oldu, nesne artık for-of döngüsüyle üzerinden geçilebilir:

javascriptfor (let elem of obj) {
  console.log(elem); // 1, 2, 3
}
Задание 1

for-of döngüsüyle üzerinden geçilebilen bir nesne yapın. Döngü elemanına, key anahtarında üzerinden geçilen nesnenin anahtarı, val anahtarında ise değeri olan bir nesne gelsin. Örnek:

javascriptlet obj = {a: 1, b: 2, c: 3};

for (let elem of obj) {
  console.log(elem);
}

Şunu yazdıracak:

javascript{key: 'a', val: 1}
{key: 'b', val: 2}
{key: 'c', val: 3}