AS3 - for(... in ...)vs each for each(... in ...)

时间:2011-08-21 10:03:46

标签: actionscript-3 loops

以下代码完全相同。 for eachfor (... in ...)之间有区别吗?

var bar:Array = new Array(1,2,3);    

for (var foo in bar){
    trace(foo);
}

for each (var foo2 in bar){
    trace(foo2);
}

2 个答案:

答案 0 :(得分:70)

不,他们做同样的事情。

for..in循环的输出是

0
1
2

虽然for each..in循环的输出是

1
2
3

for..in循环遍历数组的键/索引或对象的属性名称。每个..in循环的A迭代遍历。您得到了上述结果,因为您的bar数组的结构如下:

bar[0] = 1;
bar[1] = 2;
bar[2] = 3;

答案 1 :(得分:11)

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

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 循环索引(或键), for-each-in 循环遍历