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
|
---
title: for each...in
slug: Archive/Web/JavaScript/for_each...in
tags:
- E4X
- JavaScript
- Інструкція
- застаріла
- не рекомендована
translation_of: Archive/Web/JavaScript/for_each...in
---
<div>{{jsSidebar("Statements")}}</div>
<div class="warning">
<p>Інструкція <code>for each...in</code> є застарілою, як частина стандарту ECMA-357 (<a href="/en-US/docs/Archive/Web/E4X" title="/en-US/docs/E4X">E4X</a>). Підтримка E4X була прибрана. Розгляньте натомість використання <a href="/uk/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a>.<br>
<br>
<strong>Firefox застерігає від використання інструкції <code>for each...in</code>, вона більше не працює, починаючи з Firefox 57. Будь ласка, дивіться <a href="/en-US/docs/Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated">Застереження: цикли JavaScript 1.6 for-each-in є застарілими</a> для допомоги у міграції.</strong></p>
</div>
<p><strong>Інструкція</strong> <code><strong>for each...in</strong></code> перебирає вказаною змінною усі значення властивостей об'єкта. Для кожної окремої властивості виконується вказана інструкція.</p>
<h2 id="Синтаксис">Синтаксис</h2>
<pre class="syntaxbox">for each (<em>variable</em> in <em>object</em>) {
<em>statement</em>
}</pre>
<dl>
<dt><code>variable</code></dt>
<dd>Змінна для перебору значень властивостей, може бути оголошена ключовим словом <code>var</code>. Ця змінна є локальною для функції, а не для циклу.</dd>
</dl>
<dl>
<dt><code>object</code></dt>
<dd>Об'єкт, чиї властивості перебираються.</dd>
</dl>
<dl>
<dt><code>statement</code></dt>
<dd>Інструкція, що виконуватиметься для кожної властивості. Щоб виконати більше однієї інструкції у циклі, використовуйте <a href="/uk/docs/Web/JavaScript/Reference/Statements/block">блок</a> (<code>{ ... }</code>), щоб згрупувати ці інструкції.</dd>
</dl>
<h2 id="Опис">Опис</h2>
<p>Деякі вбудовані властивості не перебираються. Серед них усі вбудовані методи об'єктів, наприклад, метод <code>indexOf</code> об'єкта <code>String</code>. Однак, усі властивості, визначені користувачем, перебираються.</p>
<h2 id="Приклади">Приклади</h2>
<h3 id="Використання_for_each...in">Використання <code>for each...in</code></h3>
<p><strong>Застереження:</strong> Ніколи не використовуйте цикл на масивах таким чином. Використовуйте його лише на об'єктах. Дивіться більше подробиць у <a href="/uk/docs/Web/JavaScript/Reference/Statements/for...in"><code>for...in</code></a>.</p>
<p>Наступний код перебирає властивості об'єкта, обчислюючи їхню суму:</p>
<pre class="brush:js">var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};
for each (var item in obj) {
sum += item;
}
console.log(sum); // виводить "26" як результат 5+13+8</pre>
<h2 id="Специфікації">Специфікації</h2>
<p><span class="pl-s">Не є частиною жодного стандарту.</span></p>
<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
<p>Ніде не підтримується. Історично підтримується у Firefox від 1.5 до 56.</p>
<h2 id="Див._також">Див. також</h2>
<ul>
<li><code><a href="/uk/docs/Web/JavaScript/Reference/Statements/for...in">for...in</a></code> - схожа інструкція, що перебирає <em>імена</em> властивостей.</li>
<li><code><a href="/uk/docs/Web/JavaScript/Reference/Statements/for...of">for...of</a></code> - схожа інструкція, що перебирає <em>значення</em> властивостей, але може використовуватись лише для ітерабельних типів, а отже, не для звичайних об'єктів</li>
<li><code><a href="/uk/docs/JavaScript/Reference/Statements/for">for</a></code></li>
</ul>
|