--- title: for each...in slug: Web/JavaScript/Reference/Statements/for_each...in translation_of: Archive/Web/JavaScript/for_each...in ---
Конструкция for each...in заявлена как "deprecated", как часть стандарта ECMA-357 (E4X). Поддержка E4X была удалена. Вместо for each...in рассмотрите использование for...of. (Пожалуйста обратите внимание: {{ bug("791343")}}.)
Firefox теперь предупреждает об использовании for each...in и for each...in удаляется из ночных сборок. Пожалуйста, посмотрите Warning: JavaScript 1.6's for-each-in loops are deprecated для помощи в миграции.
Выражение for each...in выполняет перебор свойств указанного объекта. Для каждого свойства выполняется указанный оператор.
for each (variable in object) {
statement
}
variablevar keyword. This variable is local to the function, not to the loop.objectstatement{ ... }) to group those statements.Some built-in properties are not iterated over. These include all built-in methods of objects, e.g. String's indexOf method. However, all user-defined properties are iterated over.
for each...inWarning: Never use a loop like this on arrays. Only use it on objects. See for...in for more details.
The following snippet iterates over an object's properties, calculating their sum:
var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};
for each (var item in obj) {
sum += item;
}
console.log(sum); // logs "26", which is 5+13+8
Not part of a current ECMA-262 specification. Implemented in JavaScript 1.6 and deprecated.
{{CompatibilityTable}}
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | {{CompatNo}} | {{CompatGeckoDesktop("1.8")}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | {{CompatNo}} | {{CompatNo}} | {{CompatGeckoMobile("1.0")}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
for each...in удалён только из Nightly Firefox 53