set.keys()

set.keys() возвращает итератор для обхода значений коллекции Set

Время чтения: меньше 5 мин

Кратко

Секция статьи "Кратко"

Возвращает итератор для обхода значений коллекции Set в порядке добавления значений в коллекцию.

Обычно метод keys возвращает итератор для обхода ключей коллекции, но так как коллекция Set не имеет ключей, то для поддержки универсального интерфейса итератор возвращает значения.

Метод используется редко, правильнее использовать метод values, так как он даёт лучшую читаемость коду.

Как пишется

Секция статьи "Как пишется"

Метод keys вызывается без аргументов. Вызов метода возвращает итератор, который содержит значения коллекции в порядке их добавления от старых к новым:

        
          
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])const keys = watchList.keys()console.log(keys)// Set Iterator
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])
const keys = watchList.keys()

console.log(keys)
// Set Iterator

        
        
          
        
      

Итератор можно обойти с помощью for...of:

        
          
          for (const key of keys) {  console.log(key)}// 'Сияние'// 'Интерстеллар'// 'Казино'
          for (const key of keys) {
  console.log(key)
}

// 'Сияние'
// 'Интерстеллар'
// 'Казино'

        
        
          
        
      

Итератор можно превратить в массив с помощью spread-оператора:

        
          
          const movies = [...pairs]console.log(movies)// ['Сияние', 'Интерстеллар', 'Казино']
          const movies = [...pairs]
console.log(movies)
// ['Сияние', 'Интерстеллар', 'Казино']

        
        
          
        
      

На практике

Секция статьи "На практике"

Николай Лопин

Секция статьи "Николай Лопин"

🛠 Метод бесполезный, обойти Set можно с помощью метода forEach или for...of:

        
          
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])for (const movie of watchList) {  console.log(movie)}// 'Сияние'// 'Интерстеллар'// 'Казино'
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])

for (const movie of watchList) {
  console.log(movie)
}

// 'Сияние'
// 'Интерстеллар'
// 'Казино'

        
        
          
        
      

Если нужно превратить Set в массив, то достаточно применить spread-оператор напрямую:

        
          
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])const array = [...watchList]console.log(array)// ['Сияние', 'Интерстеллар', 'Казино']
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])
const array = [...watchList]
console.log(array)
// ['Сияние', 'Интерстеллар', 'Казино']