Тры ўбудаваныя ітэратары ў JavaScript
На самой справе кожны ітэруемы аб'ект
утрымлівае не адзін ітэратар, а тры:
values, keys і entries.
Для кожнага тыпу аб'ектаў па змаўчанні ўжываецца
свой ітэратар. Для масіваў - гэта values,
а, напрыклад, для калекцыі Map,
гэта entries.
Валодаючы гэтымі ведамі, мы цяпер можам
ужыць гэты прынцып да любой калекцыі.
Напрыклад, хай у нас ёсць калекцыя Map:
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
Па змаўчанні для гэтай калекцыі ўжываецца
ітэратар entries:
for (let elem of map) {
console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}
Але мы лёгка можам атрымаць ключы нашай калекцыі:
for (let elem of map.keys()) {
console.log(elem); // 'a', 'b', 'c'
}
Таксама можам атрымаць і значэнні:
for (let elem of map.values()) {
console.log(elem); // 1, 2, 3
}
Які ітэратар па змаўчанні дзейнічае ў калекцыі Set?