Três iteradores embutidos em JavaScript
Na verdade, todo objeto iterável
contém não um, mas três iteradores:
values, keys e entries.
Para cada tipo de objeto, um iterador padrão é aplicado.
Para arrays - é values,
e, por exemplo, para a coleção Map,
é entries.
Possuindo esse conhecimento, podemos agora
aplicar esse princípio a qualquer coleção.
Por exemplo, digamos que temos uma coleção Map:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Por padrão, para esta coleção, o iterador
entries é aplicado:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
Mas podemos facilmente obter as chaves da nossa coleção:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
Também podemos obter os valores:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
Qual iterador é o padrão na coleção Set?