Tres iteradores integrados en JavaScript
En realidad, cada objeto iterable
contiene no uno, sino tres iteradores:
values, keys y entries.
Para cada tipo de objeto, se aplica por defecto
su propio iterador. Para los arrays - es values,
y, por ejemplo, para la colección Map,
es entries.
Poseyendo este conocimiento, ahora podemos
aplicar este principio a cualquier colección.
Por ejemplo, supongamos que tenemos una colección Map:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Por defecto, para esta colección se aplica
el iterador entries:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
Pero fácilmente podemos obtener las claves de nuestra colección:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
También podemos obtener los valores:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
¿Qué iterador actúa por defecto en la colección Set?