Три вградени итератора в JavaScript

Всъщност всеки итерируем обект съдържа не един итератор, а три: values, keys и entries. За всеки тип обекти по подразбиране се прилага свой собствен итератор. За масиви - това е values, а, например, за колекцията Map, това е entries.

Притежавайки тези знания, сега можем да приложим този принцип към всяка колекция. Например, нека имаме колекция Map:

javascriptlet map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);

По подразбиране за тази колекция се прилага итератор entries:

javascriptfor (let elem of map) {
  console.log(elem); // ['a', 1], ['b', 2], ['c', 3]
}

Но лесно можем да получим ключовете на нашата колекция:

javascriptfor (let elem of map.keys()) {
  console.log(elem); // 'a', 'b', 'c'
}

Също така можем да получим и стойностите:

javascriptfor (let elem of map.values()) {
  console.log(elem); // 1, 2, 3
}
Задание 1

Кой итератор по подразбиране действа в колекцията Set?