2011-08-21 226 views

回答

69

不,他们不完全相同的事情。

您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; 
9

这里的某些困惑的是,你是你的数组中使用数字。让我们切换到字符串,看看会发生什么。

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-在环比值为