在AS3中jquery each()函数

时间:2013-04-25 07:37:20

标签: javascript jquery actionscript-3 flash flex

虽然闪存正在死亡,但我仍然需要完成我的项目:)))

如何为AS3中的每个循环实现,它给出了数组中元素的索引,就像jquery each()函数那样做

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

我用这个

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

如何使用像这样的状态myArray.splice(index,1)为每个???

或者它有可能吗?

6 个答案:

答案 0 :(得分:3)

jQuery的.each()只是一个对象迭代器,它会为你做一些额外的检查。您应该能够使用以下语法:

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

虽然,我不知道AS3是如何工作的,但请记住,没有命令在JavaScript中对象属性。

答案 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);          
    }        
});

答案 2 :(得分: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);
   }
);

答案 3 :(得分: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);
}

答案 4 :(得分:1)

你的意思是这样吗?

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

除非您指定要实现的目标,否则很难准确知道要使用的内容:)

答案 5 :(得分:1)

不应使用“for each”来迭代索引数组,应使用(var i = 0; xxx; xxx)的标准。
如果由于某种原因,你仍然发现你的每个循环都需要一个,那么这将是如何获得索引

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 in循环

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