aps*_*nce 24 loops actionscript-3
以下代码完全相同.有没有之间的差异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);
}
Run Code Online (Sandbox Code Playgroud)
Bol*_*ock 72
是的,他们不这样做同样的事情.
你的for..in循环的输出是
0
1
2
Run Code Online (Sandbox Code Playgroud)
虽然你的each..in循环的输出是
1
2
3
Run Code Online (Sandbox Code Playgroud)
for..in循环遍历数组的键/索引或对象的属性名称.每个..in循环的A迭代遍历值.您得到上述结果,因为您的bar数组结构如下:
bar[0] = 1;
bar[1] = 2;
bar[2] = 3;
Run Code Online (Sandbox Code Playgroud)
Cra*_*aig 12
这里的一些困惑是你在数组中使用数字.让我们切换到字符串,看看会发生什么.
var bar:Array = new Array("x", "y", "z");
for (var foo in bar){
trace(foo);
}
for each (var foo2 in bar){
trace(foo2);
}
Run Code Online (Sandbox Code Playgroud)
现在您的输出是:
0
1
2
x
y
z
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,for-in循环遍历索引(或键),以及for-each-in循环覆盖值.