Spec-Zone.ru › JavaScript

Set.prototype.forEach()

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Метод forEach() экземпляров Set выполняет предоставленную функцию один раз для каждого значения в этом наборе, в порядке добавления.

Попробуйте

function logSetElements(value1, value2, set) {
  console.log(`s[${value1}] = ${value2}`);
}

new Set(["foo", "bar", undefined]).forEach(logSetElements);

// Expected output: "s[foo] = foo"
// Expected output: "s[bar] = bar"
// Expected output: "s[undefined] = undefined"

Синтаксис

forEach(callbackFn)
forEach(callbackFn, thisArg)

Параметры

callback
Функция, которая будет выполнена для каждой записи в наборе. Функция вызывается со следующими аргументами:
value
Значение каждой итерации.
key
Ключ каждой итерации. Он всегда совпадает с value.
set
Набор, который итерируется.
thisArg Необязательный
Значение, которое будет использоваться как this при выполнении callbackFn.

Возвращаемое значение

Нет (undefined).

Описание

Метод forEach() выполняет предоставленную callback один раз для каждого значения, которое фактически существует в объекте Set. Он не вызывается для значений, которые были удалены. Однако он вызывается для значений, которые присутствуют, но имеют значение undefined.

callback вызывается с тремя аргументами:

  • значение элемента
  • ключ элемента
  • объект Set, который обходится

В объектах Set нет ключей, поэтому первые два аргумента являются значениями, содержащимися в Set. Это сделано для единообразия с другими методами forEach() для Map и Array.

Если параметр thisArg предоставлен в forEach(), он будет передан в callback при вызове, для использования в качестве его значения this. В противном случае значение undefined будет передано для использования в качестве его значения this. Значение this, которое в конечном итоге будет наблюдаться callback, определяется в соответствии с обычными правилами определения this, видимого функцией.

Каждое значение посещается один раз, за исключением случаев, когда оно было удалено и повторно добавлено до завершения forEach(). callback не вызывается для значений, удаленных до их посещения. Новые значения, добавленные до завершения forEach(), будут посещены.

forEach() выполняет функцию callback один раз для каждого элемента в объекте Set; он не возвращает значение.

Примеры

Логирование содержимого объекта Set

Следующий код выводит строку для каждого элемента в объекте Set:

function logSetElements(value1, value2, set) {
  console.log(`s[${value1}] = ${value2}`);
}

new Set(["foo", "bar", undefined]).forEach(logSetElements);

// Logs:
// "s[foo] = foo"
// "s[bar] = bar"
// "s[undefined] = undefined"

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-set.prototype.foreach

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
forEach
38
12
25
25
8
38
25
25
8
3.0
38
8
1.0.0
1.0
0.12.0

См. также

  • Array.prototype.forEach()
  • Map.prototype.forEach()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/forEach

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API