次のコードはまったく同じことを行います。 _for each
_とfor (... in ...)
の間に違いはありますか?
_var bar:Array = new Array(1,2,3);
for (var foo in bar){
trace(foo);
}
for each (var foo2 in bar){
trace(foo2);
}
_
いいえ、彼らはまったく同じことをしますしません。
For..inループの出力は
0
1
2
For each..inループの出力は
1
2
3
For..inループは、配列のkeys/indicesまたはオブジェクトのプロパティ名を反復処理します。 for each..inループはvaluesを反復します。 bar
配列が次のように構成されているため、上記の結果が得られます。
bar[0] = 1;
bar[1] = 2;
bar[2] = 3;
ここで混乱するのは、配列で数値を使用していることです。文字列に切り替えて、何が起こるか見てみましょう。
var bar:Array = new Array("x", "y", "z");
for (var foo in bar){
trace(foo);
}
for each (var foo2 in bar){
trace(foo2);
}
今あなたの出力は:
0
1
2
x
y
z
ご覧のとおり、for-inはindexes(またはキー)をループし、for-each-inはvaluesをループします。。