⊗jsSpItIOC 67 of 294 menu

Iteroitavan olion luominen JavaScriptissä

Luodaanpa todellinen iteroitava olio, jota voidaan käyttää for-of-silmukassa. Tätä varten oliolla tulee olla vastaava funktio kohdassa Symbol.iterator.

Toteutetaan se. Oletetaan, että meillä on seuraava olio:

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

Lisätään funktio kohtaan Symbol.iterator:

obj[Symbol.iterator] = function() { }

Muutetaan tämä funktio generaattoriksi:

obj[Symbol.iterator] = function *() { }

Funktion sisällä this viittaa itse olioon:

obj[Symbol.iterator] = function *() { console.log(this); // itse olio }

Käynnistetään iteraattorissa olion läpikäynti:

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

Valmis, oliota voidaan käyttää for-of-silmukassa:

for (let elem of obj) { console.log(elem); // 1, 2, 3 }

Tee olio, jota voidaan käyttää for-of-silmukassa. Olkoon, että silmukan elementtiin tulee olio, jonka avain key sisältää iteroidun olion avaimen, ja avain val - arvon. Esimerkki:

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

Tulostaa:

{key: 'a', val: 1} {key: 'b', val: 2} {key: 'c', val: 3}
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää