以下代码完全相同。 for each
和for (... in ...)
之间有区别吗?AS3 - for(... in ...)vs for each(... 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 each
和for (... in ...)
之间有区别吗?AS3 - for(... in ...)vs for each(... 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
当你对each..in循环输出
1
2
3
通过for..in循环迭代键/索引的数组或属性名称的一个对象。 A for each..in循环遍历值。你得到上面的结果,因为你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-each-在环比值为。
更像“for(... in ...)vs for each(... in ...)” – BoltClock