The for each...in
statement is deprecated as the part of ECMA-357 (E4X) standard. E4X support has been removed, but for each...in will not be disabled and removed because of backward compatibility considerations. Consider using for...of instead. (Please refer to {{ bug("791343")}}.)
Firefox now warns about the usage of for each...in
. Please see Warning: JavaScript 1.6's for-each-in loops are deprecated for migration help.
The for each...in
statement iterates a specified variable over all values of object's properties. For each distinct property, a specified statement is executed.
Syntax
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
{{WhyNoSpecStart}}Not part of a current ECMA-262 specification. Implemented in JavaScript 1.6 and deprecated.{{WhyNoSpecEnd}}
Browser compatibility
{{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}} |