2012-09-10 54 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) { ... }