[英]jquery each() function in AS3
盡管閃存正在逐漸消亡,但我仍然必須完成我的項目:)))
如何在AS3中為每個循環實現,該循環為我提供了數組中元素的索引,就像jquery each()函數那樣
jQuery.each( collection, callback(indexInArray, valueOfElement) )
我用這個
for each(var myObj:* in myArray)
{
// do some stuff with myObj
}
如何為每個使用像myArray.splice(index,1)這樣的stateme ???
還是有可能嗎?
jQuery的.each()
只是一個對象迭代器,它為您做一些附加檢查。 您應該可以使用如下語法:
var i = 0;
for ( property in object ) {
callback( i++, object[property] )
}
雖然,我不知道AS3如何工作,但是請記住,JavaScript中沒有對象屬性的順序。
這會起作用。
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);
}
});
為什么不使用屬於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);
}
);
為什么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);
}
你的意思是這樣嗎?
for(var i:int=0; i<myArray.length; i++){
var myObj = myArray[i];
}
除非您指定要實現的目標,否則很難確切地知道要使用什么:
不應使用“ for each”來遍歷索引數組,而應使用for(var i = 0; xxx; xxx)的標准。
如果由於某種原因您仍然發現自己每個循環都需要a,那么這將是獲取索引的方法
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循環
for (var key:String in arr){
trace(key)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.