--- title: for each...in slug: Web/JavaScript/Reference/Statements/for_each...in tags: - Deprecated - E4X - JavaScript - Obsolete - Statement translation_of: Archive/Web/JavaScript/for_each...in ---
for each...in
文は ECMA-357 (E4X) の一部として廃止されました。E4X のサポートは削除されました。代替として、for...of 文が推奨されます。
Firefox は for each...in
の使用に対して警告を表示します。また、Firefox 57 以降では動作しません。
移行のためのヘルプとして Warning: JavaScript 1.6's for-each-in loops are deprecated をご覧ください。
for each...in
文は指定された変数を、オブジェクトの全プロパティの値に対して反復します。異なるそれぞれのプロパティに対し、指定された文が実行されます。
for each (variable in object) { statement }
variable
var
キーワードを用いて宣言された、プロパティの値に対して反復する変数。この変数はループにではなく、関数にローカルです。object
statement
{ ... }
) を使ってください。ある組み込みプロパティに対しては反復されません。これらには、たとえば String
の indexOf
メソッドといった、オブジェクトのすべての組み込みメソッドが含まれます。しかしながら、すべてのユーザー定義プロパパティに対しては反復されます。
for each...in
を使う警告: このようなループを決して配列に使わないでください。オブジェクトにだけ使ってください。詳しくは for...in
をご覧ください。
次のスニペットはオブジェクトのプロパティに対して反復し、それらの合計を計算します:
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
現行の ECMA-262 仕様には含まれていません。JavaScript 1.6 で実装され、非推奨になりました。
{{Compat("javascript.statements.for_each_in")}}