1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
---
title: Set.prototype.forEach()
slug: Web/JavaScript/Reference/Global_Objects/Set/forEach
translation_of: Web/JavaScript/Reference/Global_Objects/Set/forEach
---
<div>{{JSRef}}</div>
<p>Метод <code><strong>forEach()</strong></code> выполняет функцию по одному разу для каждого элемента из <code>Set</code> в порядке их расположения.</p>
<div>{{EmbedInteractiveExample("pages/js/set-prototype-foreach.html")}}</div>
<h2 id="Синтаксис">Синтаксис</h2>
<pre class="syntaxbox"><em>mySet</em>.forEach(<em>callback</em>[, <var>thisArg</var>]<code>)</code></pre>
<h3 id="Параметры">Параметры</h3>
<dl>
<dt><code>callback</code></dt>
<dd>Функция, которая будет выполнена для каждого элемента, принимает три параметра:</dd>
<dd>
<dl>
<dt><code>currentValue</code>, <code>currentKey</code></dt>
<dd>Текущий элемент из <code>Set</code>. Т.к. в <code>Set</code> нет ключей, в каждом будет лежать value.</dd>
<dt><code>set</code></dt>
<dd>Сам объект <code>Set</code> для которого был вызван <code>forEach()</code>.</dd>
</dl>
</dd>
<dt><code>thisArg</code></dt>
<dd>Значение, используемое как <code>this</code> в ходе выполнения <code>callback</code>.</dd>
</dl>
<h3 id="Возвращаемое_значение">Возвращаемое значение</h3>
<p>{{jsxref("undefined")}}.</p>
<h2 id="Описание">Описание</h2>
<p>Метод <code>forEach()</code> выполняет <code>callback</code> по одному разу для каждого значения, которое находится в объекте <code>Set</code>. Функция не будет выполняться для значений, которые были удалены. Тем не менее функция выполнится с элементами, значение которых <code>undefined</code>.</p>
<p><code>callback</code> вызывается с <strong>тремя аргументами</strong>:</p>
<ul>
<li><strong>значение элемента</strong></li>
<li><strong>ключ элемента</strong></li>
<li><strong><code>Set</code> объект обхода</strong></li>
</ul>
<p>В объектах типа <code>Set</code> нет ключей, поэтому оба первых аргумента принимают <strong>значение</strong> содержащееся в {{jsxref("Set")}}. Это делает метод <code>forEach()</code> для объекта Set совместимым с методами <code>forEach()</code> других объектов, таких как {{jsxref("Map.foreach", "Map")}} и {{jsxref("Array.forEach","Array")}}.</p>
<p><code><font face="Arial, x-locale-body, sans-serif"><span style="background-color: #ffffff;">Если аргумент </span></font>thisArg</code> был передан в <code>forEach()</code>, то он будет передан в <code>callback</code> , во время исполнения, для использование его в качестве <code>this</code>. Иначе в <code>this</code> будет хранится значение <code>undefined</code>. Значение <code>this</code> используемое в <code>callback</code> определено согласно <a href="/en-US/docs/Web/JavaScript/Reference/Operators/this">с обычными правилами определения <code>this</code> используемого функцией</a> </p>
<p>Каждое значение используется только один раз, исключая те случаи, когда оно было удалено и передобавлено до того, как <code>forEach()</code> завершился. <code>callback</code> не будет выполнена для элементов, которые были удалены до их использования. Новые значения, которые были добавлены до того как <code>forEach()</code> завершился будут использованы.</p>
<p><code>forEach()</code> выполняет <code>callback</code> однажды для каждого элемента из объекта <code>Set</code>; Он не возвращает никакого значения.</p>
<h2 id="Примеры">Примеры</h2>
<h3 id="Содержимое_объекта_Set">Содержимое объекта <code>Set</code> </h3>
<p>Приведённый код показывает состояние каждого элемента в объекте <code>Set</code>:</p>
<pre class="brush:js">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"
</pre>
<h2 id="Спецификации">Спецификации</h2>
{{Specifications}}
<h2 id="Совместимость_в_браузерах">Совместимость в браузерах</h2>
<p>{{Compat}}</p>
<h2 id="Смотрите_также">Смотрите также</h2>
<ul>
<li>{{jsxref("Array.prototype.forEach()")}}</li>
<li>{{jsxref("Map.prototype.forEach()")}}</li>
</ul>
|