AS3访问对象属性

时间:2012-09-10 18:39:09

标签: arrays actionscript-3 arraylist

我试图弄清楚是否有办法在数组类型数据结构中存储对象,然后能够搜索所有对象以获取特定属性。

就像,如果我有四个对象存储在一个数组中(它们的名称是object1-4),它们都有一个ID属性(object1.ID = 1,object2.ID = 2,object3.ID = 3, object4.ID = 4),有没有办法搜索数组的所有对象(object1-4)以找到与数字匹配的对象ID?

例如,如果我的数组有[object1,object2,object3,object4]并且它们都具有ID属性(object1.ID = 1,object2.ID = 2,object3.ID = 3,object4.ID = 4)我试图找到一种循环遍历所有对象的方法,以找出ID为2的对象

var objectList:Array = new Array;
objectList[0] = object1;
objectList[1] = object2;
objectList[2] = object3;
objectList[3] = object4;

function searchArray(searchTerm:int)
{
    if(var i:int = 0; i <  objectList.length ; i++)
    {
       if(objectList[i].ID == searchTerm)
       {  
          trace("Match Found")
       }
    }
}

2 个答案:

答案 0 :(得分:1)

    function searchArray(searchTerm:int,searchBy:String = 'ID'):*
    {
        var res:* = null;
        for(var i:int = 0; i <  objectList.length ; i++)
        {
            if(objectList[i].hasOwnProperty(searchBy))
            {
                if(objectList[i][searchBy] == searchTerm)
                {  
                    res = objectList[i];
                    break;
                }
            }

        }
        return res;
    }

答案 1 :(得分:0)

如果您的ID = object2和您的搜索字词为2,则您永远不会与==匹配。尝试:

if (Number(objectList[i].ID.replace('object', '')) == searchterm) { ... }

if (objectList[i].ID == 'object' + searchterm) { ... }