2012-09-10 50 views
0

我想弄清楚是否有办法将对象存储在数组类型的数据结构中,然后再能够搜索所有对象的特定属性。如果我有四个存储在一个数组中的对象(它们的名字是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)我试图找到一种方法来遍历所有的对象,找到其中一个有2AS3访问对象的属性

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") 
     } 
    } 
} 
+0

你应该使用矢量而非数组,如果你所有的链表类的项目是同一对象类型。 – BadFeelingAboutThis

回答

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; 
    } 
0

的ID如果ID = object2和你的搜索关键词是2,你永远不会匹配==。尝试之一:

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

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