下面的代码做了完全相同的事情。for each和for (... in ...)有什么区别吗?
var bar:Array = new Array(1,2,3);
for (var foo in bar){
trace(foo);
}
for each (var foo2 in bar){
trace(foo2);
}发布于 2011-08-21 18:44:40
不,他们做的不是完全一样的事情。
您的for..in循环的输出为
0
1
2而for each..in循环的输出是
1
2
3for..in循环遍历数组的键/索引或对象的属性名。for each..in循环遍历值。您会得到上面的结果,因为您的bar数组的结构如下:
bar[0] = 1;
bar[1] = 2;
bar[2] = 3;发布于 2014-04-20 11:54:37
这里的一些混淆是您在数组中使用了数字。让我们切换到字符串,看看会发生什么。
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循环遍历values。
https://stackoverflow.com/questions/7137596
复制相似问题