Vytvorenie iterovateľného objektu v JavaScripte
Vytvorme si skutočný iterovateľný
objekt, ktorý bude možné prechádzať
cez cyklus for-of. Na to
je potrebné objektu pridať príslušnú
funkciu do Symbol.iterator.
Poďme to implementovať. Predpokladajme, že máme nasledujúci objekt:
let obj = {
a: 1,
b: 2,
c: 3,
};
Pridajme funkciu do Symbol.iterator:
obj[Symbol.iterator] = function() {
}
Premeňme túto funkciu na generátor:
obj[Symbol.iterator] = function *() {
}
Vo vnútri našej funkcie this bude odkazovať
na samotný objekt:
obj[Symbol.iterator] = function *() {
console.log(this); // samotný objekt
}
Spustíme v iterátore prechádzanie objektu:
obj[Symbol.iterator] = function *() {
for (let key in this) {
yield obj[key];
}
}
Hotovo, objekt je možné prechádzať cyklom
for-of:
for (let elem of obj) {
console.log(elem); // 1, 2, 3
}
Vytvorte objekt, ktorý je možné prechádzať
cyklom for-of. Nech do prvku
cyklu padne objekt, v ktorom kľúč key
bude obsahovať kľúč prechádzaného
objektu a kľúč val - hodnotu.
Príklad:
let obj = {a: 1, b: 2, c: 3};
for (let elem of obj) {
console.log(elem);
}
Vypíše:
{key: 'a', val: 1}
{key: 'b', val: 2}
{key: 'c', val: 3}