AS 學習筆記 for in 和 for each in

JaoYE發表於2013-06-19

for in 的速度比 for each  in 慢很多倍 ~~

 

var myArray:Array = new Array();

myArray["a"] = "zero";
myArray["b"] = "one";
myArray["2"] = "two";

var _local1:String;

for(_local1 in myArray) trace(_local1);

這個 _loacl1 列印的是 2 b a

var _local2:String;
for each (_local2 in myArray) trace(_local2);
這樣列印的 是 值  two , one , zero

 

PS : 好多人說 Array 的列印 是無序 的 但是 我測試 發現好像 如果有鍵值的時候 會按照 鍵 排序後 列印 結果

如上面的程式  總是 先列印 數字下標的 在列印 字母的 (未作大量測試~,不一定 對哦)

============我是分割線===================

下面是 scaleform 和 Flash 的區別

如果想上面 程式碼那樣寫 兩邊是沒有 什麼 區別的

但是 如果 把 臨時變數(_local1, _local2) 的型別設定為 * 

那麼 兩邊的結果 就不同了 Flash 中依然正常列印結果

在 scaleform 中 則只能列印以 陣列 為下標的

如若不是 則 鍵 列印為 NaN   值 列印為 undefined

 

 

 

相關文章