Три вградени итератора в 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?