# Три встроенных итератора в 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?

←→
↑
en ru