Се итераторҳои дарсохтаи 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 кадом итератор ба таври пешфарз амал мекунад?