Tre iteratori integrati in JavaScript

In realtà, ogni oggetto iterabile contiene non uno, ma tre iteratori: values, keys e entries. Per ogni tipo di oggetto, viene applicato per impostazione predefinita un iteratore specifico. Per gli array - è values, mentre, ad esempio, per la collezione Map, è entries.

Possedendo questa conoscenza, ora possiamo applicare questo principio a qualsiasi collezione. Ad esempio, supponiamo di avere una collezione Map:

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

Per impostazione predefinita, per questa collezione viene utilizzato l'iteratore entries:

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

Ma possiamo facilmente ottenere le chiavi della nostra collezione:

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

Possiamo anche ottenere i valori:

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

Quale iteratore è attivo per impostazione predefinita nella collezione Set?