Конструкция for each...in
заявлена как "deprecated", как часть стандарта ECMA-357 (E4X). Поддержка E4X была удалена. Вместо for each...in
рассмотрите использование for...of. (Пожалуйста обратите внимание: баг 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 }
variable
- Variable to iterate over property values, optionally declared with the
var
keyword. This variable is local to the function, not to the loop.
object
- Object for which the properties are iterated.
statement
- A statement to execute for each property. To execute multiple statements within the loop, use a block statement (
{ ... }
) to group those statements.
Description
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.
Examples
Using for each...in
Warning: 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
Specifications
Not part of a current ECMA-262 specification. Implemented in JavaScript 1.6 and deprecated.
Браузерная совместимость
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | Нет | 1.5 (1.8) | Нет | Нет | Нет |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | Нет | Нет | 1.0 (1.0) | Нет | Нет | Нет |
Firefox specific note
for each...in
удалён только из Nightly Firefox 53