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"
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 |
См. также
© 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