Die Skepping van 'n Itereerbare Voorwerp in JavaScript

Kom ons skep 'n ware itereerbare voorwerp wat deur 'n for-of-lus herhaal kan word. Om dit te doen, moet 'n toepaslike funksie by die voorwerp se Symbol.iterator gevoeg word.

Kom ons implementeer dit. Gestel ons het die volgende voorwerp:

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

Laat ons 'n funksie by Symbol.iterator voeg:

javascriptobj[Symbol.iterator] = function() {

}

Verander hierdie funksie in 'n generator:

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

}

Binne ons funksie sal this verwys na die voorwerp self:

javascriptobj[Symbol.iterator] = function *() {
  console.log(this); // die voorwerp self
}

Laat die iterator die voorwerp herhaal:

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

Klaar, die voorwerp kan nou met 'n for-of-lus herhaal word:

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

Skep 'n voorwerp wat met 'n for-of-lus herhaal kan word. Laat die lus-element 'n voorwerp wees waarin die sleutel key die sleutel van die herhaalde voorwerp bevat, en die sleutel val die waarde bevat. Voorbeeld:

javascriptlet obj = {a: 1, b: 2, c: 3};
  
for (let elem of obj) {
  console.log(elem);
}

Sal uitvoer:

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