2013-04-25 52 views
1

雖然閃光燈染色技術我還是要完成我的項目:)))jQuery的AS3中的每個()函數

如何實現在AS3每個迴路,讓我的元素的索引數組中,很像jQuery的每個()函數它

jQuery.each(collection, callback(indexInArray, valueOfElement)) 

我用這個

for each(var myObj:* in myArray) 
{ 
    // do some stuff with myObj 
} 

如何使用stateme這樣myArray.splice(指數1)在各???

還是有可能呢?

回答

3

這會工作。

var arr:Array = new Array(); 
arr[1] = true; 
arr[5] = true; 
arr.forEach(function (item:*, index:int, array:Array) 
{ 
    if(item != undefined) 
    { 
     callback(index, item);   
    }   
}); 
3

jQuery的.each()只是一個對象迭代器,它爲你做了一些額外的檢查。你應該能夠逃脫語法,如:

var i = 0; 
for (property in object) { 
    callback(i++, object[property]) 
} 

雖然,我不知道怎麼AS3的作品,但是請記住,沒有訂單在JavaScript對象屬性。

+0

是啊,我知道此解決方案。這是爲了避免使用創建像i,j,k,t等單獨的索引... :)) – Vlad 2013-04-25 07:58:06

+0

你想通過數組或對象循環嗎?一個數組應該有int鍵,所以你有索引? – 2013-04-25 08:07:45

+0

數組的確是As3中的一個數組。對象具有整數索引。但是AS3數組是稀疏數組,所以在midlle中的對象可以像這樣被定義爲arr [0] = obj1,arr [1] = undefined arr [2] = obj2 – Vlad 2013-04-25 08:13:16

2

爲什麼不使用屬於Array對象的forEach函數將對數組中的每個項目執行一個函數。

這裏用它的活樣本:http://wonderfl.net/c/mLhCM

例如:

var ar:Array = ["hello", 1, "world", 2]; 
ar.forEach(
    function(elm:*, index:int, arr:Array):void { 
      trace("got elm : "+elm+" at index : "+index); 
    } 
); 
2

爲什麼不簡單for...in循環:

var arr:Array = [2,1,5,0,0,0,87,8,110]; 

for (var i:String in arr) 
{ 
    trace("Value:" + arr[i] + " at " + i); 
} 
1

你的意思是這樣的嗎?

for(var i:int=0; i<myArray.length; i++){ 
    var myObj = myArray[i]; 
} 

很難知道,除非你指定要實現:)

1

使用什麼究竟什麼是「每個」不應該被用來通過索引數組迭代,對於標準(VAR應該使用i = 0; xxx; xxx)。
如果因任何原因,你還是找yourselff需要每個循環那麼這將是如何得到該指數

var arr:Array = ['00','11','22','33','44','55','66','77','88','99'] 
for each(var o:Object in arr){ 
    trace(arr.indexOf(o)) 
} 

另一種選擇是在循環使用的

for (var key:String in arr){ 
    trace(key) 
} 
+0

你說你不應該用在陣列上的每個原因是什麼? – 2013-04-26 02:13:11