Iterálható objektum létrehozása JavaScriptben
Készítsünk egy valódi iterálható
objektumot, amelyet át lehet iterálni
a for-of ciklussal. Ehhez
hozzá kell adnunk egy megfelelő
funkciót a Symbol.iterator-hoz.
Valósítsuk meg. Tegyük fel, hogy van a következő objektumunk:
let obj = {
a: 1,
b: 2,
c: 3,
};
Adjunk hozzá egy funkciót a Symbol.iterator-hoz:
obj[Symbol.iterator] = function() {
}
Alakítsuk át ezt a funkciót generátorrá:
obj[Symbol.iterator] = function *() {
}
A funkciónk belsejében a this
magára az objektumra fog hivatkozni:
obj[Symbol.iterator] = function *() {
console.log(this); // maga az objektum
}
Indítsuk el az objektum iterálását az iterátorban:
obj[Symbol.iterator] = function *() {
for (let key in this) {
yield obj[key];
}
}
Kész, az objektum átiterálható a
for-of ciklussal:
for (let elem of obj) {
console.log(elem); // 1, 2, 3
}
Készítsen egy objektumot, amely átiterálható
a for-of ciklussal. Hagyja, hogy a ciklus
eleme egy olyan objektum legyen, amelynek key
kulcsa az iterált objektum kulcsa,
val kulcsa pedig az értéke.
Példa:
let obj = {a: 1, b: 2, c: 3};
for (let elem of obj) {
console.log(elem);
}
Ezt fogja kiírni:
{key: 'a', val: 1}
{key: 'b', val: 2}
{key: 'c', val: 3}