.forEach()

Метод используется для обхода элементов коллекции Set

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

Кратко

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

Метод forEach используется для обхода элементов коллекции Set. Обход происходит в порядке добавления значений в коллекцию от старых к новым.

Метод работает идентично одноимённому методу массива.

Пример

Секция статьи "Пример"
        
          
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])watchList.forEach(function(value) {  console.log(`Нужно посмотреть «${value}»`)})// Нужно посмотреть «Сияние»// Нужно посмотреть «Интерстеллар»// Нужно посмотреть «Казино»
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])
watchList.forEach(function(value) {
  console.log(`Нужно посмотреть «${value}»`)
})

// Нужно посмотреть «Сияние»
// Нужно посмотреть «Интерстеллар»
// Нужно посмотреть «Казино»

        
        
          
        
      

Как пишется

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

Метод принимает два аргумента:

1️⃣ колбэк-функцию, которую нужно выполнить на каждом элементе коллекции. Функция может использовать до трёх параметров, их можно опускать, если они не нужны:

  • текущее значение;
  • текущее значение (в массиве на втором месте идёт индекс, но Set неиндексированная коллекция. Для совместимости решили дважды возвращать значение);
  • коллекция, которая обходится.

2️⃣ значение, которое будет использоваться как this внутри функции

Использование всех параметров выглядит так:

        
          
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])watchList.forEach(function(value, value2, s) {  console.log(`${this.name}, нужно посмотреть «${value}»`)}, {name: 'Евген'})// Евген, нужно посмотреть «Сияние»// Евген, нужно посмотреть «Интерстеллар»// Евген, нужно посмотреть «Казино»
          const watchList = new Set(['Сияние', 'Интерстеллар', 'Казино'])
watchList.forEach(function(value, value2, s) {
  console.log(`${this.name}, нужно посмотреть «${value}»`)
}, {name: 'Евген'})

// Евген, нужно посмотреть «Сияние»
// Евген, нужно посмотреть «Интерстеллар»
// Евген, нужно посмотреть «Казино»

        
        
          
        
      

Такая запись не используется почти никогда, предпочтение отдаётся короткой записи, описанной в стартовом примере.