我试图弄清楚是否有办法在数组类型数据结构中存储对象,然后能够搜索所有对象以获取特定属性。
就像,如果我有四个对象存储在一个数组中(它们的名称是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")
}
}
}
答案 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) { ... }