以下代碼完全相同。 for each
和for (... in ...)
之間有區別嗎?AS3 - for(... in ...)vs for each(... 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 each
和for (... in ...)
之間有區別嗎?AS3 - for(... in ...)vs for each(... 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循環的輸出是
0
1
2
當你對each..in循環輸出
1
2
3
通過for..in循環迭代鍵/索引的數組或屬性名稱的一個對象。 A for each..in循環遍歷值。你得到上面的結果,因爲你bar
陣列的結構是這樣的:
bar[0] = 1;
bar[1] = 2;
bar[2] = 3;
這裏的某些困惑的是,你是你的數組中使用數字。讓我們切換到字符串,看看會發生什麼。
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-each-在環比值爲。
更像「for(... in ...)vs for each(... in ...)」 – BoltClock