Drie ingebouwde iterators in JavaScript
Eigenlijk bevat elk itereerbaar object
niet één iterator, maar drie:
values, keys en entries.
Voor elk type object wordt standaard een
eigen iterator gebruikt. Voor arrays is dit values,
en bijvoorbeeld voor de collectie Map,
is dit entries.
Met deze kennis kunnen we nu
dit principe toepassen op elke collectie.
Stel dat we bijvoorbeeld een collectie Map hebben:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Standaard voor deze collectie wordt de
iterator entries gebruikt:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
Maar we kunnen eenvoudig de sleutels van onze collectie verkrijgen:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
We kunnen ook de waarden verkrijgen:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
Welke iterator werkt standaard in de collectie Set?