AS3 - for (... in ...) vs for each (... in ...)
Posted
技术标签:
【中文标题】AS3 - for (... in ...) vs for each (... in ...)【英文标题】: 【发布时间】:2011-10-31 13:02:27 【问题描述】:下面的代码做同样的事情。 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);
【问题讨论】:
更像是“for (... in ...) vs for each (... in ...)” 【参考方案1】:不,他们不做完全相同的事情。
for..in 循环的输出是
0
1
2
而你的 for each..in 循环的输出是
1
2
3
for..in 循环遍历数组的键/索引或对象的属性名称。 for each..in 循环遍历 值。您得到上述结果是因为您的 bar
数组的结构如下:
bar[0] = 1;
bar[1] = 2;
bar[2] = 3;
【讨论】:
【参考方案2】:这里的一些混淆是您在数组中使用数字。让我们切换到字符串,看看会发生什么。
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 循环遍历 价值观。
【讨论】:
以上是关于AS3 - for (... in ...) vs for each (... in ...)的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript ??? 4 ???????????????????????? for VS forEach() VS for/in VS for/of
javascript for-for vs for-in循环