aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/global_objects/set/foreach/index.html
blob: 4850e60aace5436d7d663540dce4b6ada7047887 (plain)
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>