Actionscript 3 AS3-针对(…in…)和针对每个(…in…)

Actionscript 3 AS3-针对(…in…)和针对每个(…in…),actionscript-3,loops,Actionscript 3,Loops,下面的代码执行完全相同的操作。每个的与(…in…)的之间是否存在差异 不,他们做的事情完全不同 for..in循环的输出为 0 1 2 1 2 3 而for each..in循环的输出是 0 1 2 1 2 3 for..in循环遍历数组的键/索引或对象的属性名。for each..in循环遍历值。之所以得到上述结果,是因为bar数组的结构如下: bar[0] = 1; bar[1] = 2; bar[2] = 3; 这里的一些困惑是,您正在数组中使用数字。让我们切换到字符串,看看会发

下面的代码执行完全相同的操作。每个的
与(…in…
)的
之间是否存在差异

不,他们做的事情完全不同

for..in循环的输出为

0
1
2
1
2
3
而for each..in循环的输出是

0
1
2
1
2
3
for..in循环遍历数组的键/索引或对象的属性名。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 in索引(或键)上循环,而for每个in值上循环更像是“for(…in…)vs for each(…in…)