AS3 - for (... in ...) 与 for every (... in ...)

发布于 2024-11-30 12:53:54 字数 237 浏览 0 评论 0原文

以下代码执行完全相同的操作。 for everyfor (... in ...) 之间有区别吗?

var bar:Array = new Array(1,2,3);    

for (var foo in bar){
    trace(foo);
}

for each (var foo2 in bar){
    trace(foo2);
}

The following code does the exact same thing. Is there a difference between for each and 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);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

混吃等死 2024-12-07 12:53:54

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

for..in 循环的输出是

0
1
2

而 for every..in 循环的输出是

1
2
3

for..in 循环迭代数组或属性名称的键/索引 一个对象。 foreach..in 循环迭代。您得到上述结果是因为您的 bar 数组的结构如下:

bar[0] = 1;
bar[1] = 2;
bar[2] = 3;

No, they do not do the exact same thing.

The output of your for..in loop is

0
1
2

While the output of your for each..in loop is

1
2
3

A for..in loop iterates through the keys/indices of an array or property names of an object. A for each..in loop iterates through the values. You get the above results because your bar array is structured like this:

bar[0] = 1;
bar[1] = 2;
bar[2] = 3;
清醇 2024-12-07 12:53:54

这里的一些混乱是您在数组中使用数字。让我们切换到字符串,看看会发生什么。

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循环遍历价值观

Some of the confusion here is that you are using numbers in your array. Let's switch to strings and see what happens.

var bar:Array = new Array("x", "y", "z");    

for (var foo in bar){
    trace(foo);
}

for each (var foo2 in bar){
    trace(foo2);
}

Now your output is:

0
1
2
x
y
z

As you can see, for-in loops over indexes (or keys), and for-each-in loops over values.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文