Set.prototype.forEach()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 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"
СинÑакÑиÑ
mySet.forEach(callback[, thisArg])
ÐаÑамеÑÑÑ
callback-
ФÑнкÑиÑ, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²Ñполнена Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа, пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑи паÑамеÑÑа:
currentValue,currentKey-
ТекÑÑий ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¸Ð·
Set. Т.к. вSetÐ½ÐµÑ ÐºÐ»ÑÑей, в каждом бÑÐ´ÐµÑ Ð»ÐµÐ¶Ð°ÑÑ value. set-
Сам обÑекÑ
SetÐ´Ð»Ñ ÐºÐ¾ÑоÑого бÑл вÑзванforEach().
thisArg-
ÐнаÑение, иÑполÑзÑемое как
thisв Ñ Ð¾Ð´Ðµ вÑполнениÑcallback.
ÐозвÑаÑаемое знаÑение
ÐпиÑание
ÐеÑод forEach() вÑполнÑÐµÑ callback по Ð¾Ð´Ð½Ð¾Ð¼Ñ ÑÐ°Ð·Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ знаÑениÑ, коÑоÑое наÑ
одиÑÑÑ Ð² обÑекÑе Set. ФÑнкÑÐ¸Ñ Ð½Ðµ бÑÐ´ÐµÑ Ð²ÑполнÑÑÑÑÑ Ð´Ð»Ñ Ð·Ð½Ð°Ñений, коÑоÑÑе бÑли ÑдаленÑ. Тем не менее ÑÑнкÑÐ¸Ñ Ð²ÑполниÑÑÑ Ñ ÑлеменÑами, знаÑение коÑоÑÑÑ
undefined.
callback вÑзÑваеÑÑÑ Ñ ÑÑÐµÐ¼Ñ Ð°ÑгÑменÑами:
- знаÑение ÑлеменÑа
- клÑÑ ÑлеменÑа
SetобÑÐµÐºÑ Ð¾Ð±Ñ Ð¾Ð´Ð°
РобÑекÑаÑ
Ñипа Set Ð½ÐµÑ ÐºÐ»ÑÑей, поÑÑÐ¾Ð¼Ñ Ð¾Ð±Ð° пеÑвÑÑ
аÑгÑменÑа пÑинимаÑÑ Ð·Ð½Ð°Ñение ÑодеÑжаÑееÑÑ Ð² Set. ÐÑо Ð´ÐµÐ»Ð°ÐµÑ Ð¼ÐµÑод forEach() Ð´Ð»Ñ Ð¾Ð±ÑекÑа Set ÑовмеÑÑимÑм Ñ Ð¼ÐµÑодами forEach() дÑÑгиÑ
обÑекÑов, ÑакиÑ
как Map и Array.
ÐÑли аÑгÑÐ¼ÐµÐ½Ñ thisArg бÑл пеÑедан в forEach(), Ñо он бÑÐ´ÐµÑ Ð¿ÐµÑедан в callback , во вÑÐµÐ¼Ñ Ð¸ÑполнениÑ, Ð´Ð»Ñ Ð¸ÑполÑзование его в каÑеÑÑве this. ÐнаÑе в this бÑÐ´ÐµÑ Ñ
ÑаниÑÑÑ Ð·Ð½Ð°Ñение undefined. ÐнаÑение 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"
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-set.prototype.foreach> |