【问题标题】:AS3 - for (... in ...) vs for each (... in ...)AS3 - for (... in ...) vs for each (... in ...)
【发布时间】:2011-10-31 13:02:27
【问题描述】:

下面的代码做同样的事情。 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);
}

【问题讨论】:

  • 更像是“for (... in ...) vs for each (... in ...)”

标签: actionscript-3 loops


【解决方案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 循环遍历 价值观

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 1970-01-01
      • 2010-10-12
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 2013-04-02
      • 1970-01-01
      相关资源
      最近更新 更多