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

aps*_*nce 24 loops actionscript-3

以下代码完全相同.有没有之间的差异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);
}
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循环覆盖.