Trzy wbudowane iteratory w JavaScript
W rzeczywistości każdy obiekt iterowalny
zawiera nie jeden iterator, a trzy:
values, keys i entries.
Dla każdego typu obiektów domyślnie stosowany jest
jego własny iterator. Dla tablic - jest to values,
a, na przykład, dla kolekcji Map,
jest to entries.
Posiadając tę wiedzę, możemy teraz
zastosować tę zasadę do dowolnej kolekcji.
Na przykład, załóżmy, że mamy kolekcję Map:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Domyślnie dla tej kolekcji stosowany jest
iterator entries:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
Ale z łatwością możemy uzyskać klucze naszej kolekcji:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
Możemy również uzyskać wartości:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
Który iterator domyślnie działa w kolekcji Set?