Kolme JavaScriptin sisäänrakennettua iteraattoria
Itse asiassa jokainen iteroitava objekti
sisältää ei yhden iteraattorin, vaan kolme:
values, keys ja entries.
Jokaiselle objektityypille oletusarvoisesti käytetään
omaa iteraattoriaan. Taulukoille - se on values,
ja esimerkiksi Map-kokoelmalle,
se on entries.
Nämä tiedot hallussa, voimme nyt
soveltaa tätä periaatetta mihin tahansa kokoelmaan.
Esimerkiksi, oletetaan että meillä on Map-kokoelma:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Oletusarvoisesti tälle kokoelmalle käytetään
iteraattoria entries:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
Mutta voimme helposti saada kokoelmamme avaimet:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
Voimme saada myös arvot:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
Mikä iteraattori on oletusarvoisesti käytössä Set-kokoelmassa?