Tre iteratori integrati in JavaScript
In realtà, ogni oggetto iterabile
contiene non uno, ma tre iteratori:
values, keys e entries.
Per ogni tipo di oggetto, viene applicato per impostazione predefinita
un iteratore specifico. Per gli array - è values,
mentre, ad esempio, per la collezione Map,
è entries.
Possedendo questa conoscenza, ora possiamo
applicare questo principio a qualsiasi collezione.
Ad esempio, supponiamo di avere una collezione Map:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Per impostazione predefinita, per questa collezione viene utilizzato
l'iteratore entries:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
Ma possiamo facilmente ottenere le chiavi della nostra collezione:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
Possiamo anche ottenere i valori:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
Quale iteratore è attivo per impostazione predefinita nella collezione Set?