0

オブジェクトを配列型のデータ構造に格納し、後ですべてのオブジェクトで特定の属性を検索できるようにする方法があるかどうかを調べようとしています。

同様に、配列に格納された 4 つのオブジェクト (それらの名前は 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")
       }
    }
}
4

2 に答える 2

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;
    }
于 2012-09-10T18:51:56.997 に答える
0

あなたID = object2とあなたの検索用語が2の場合、 と一致することはありません==。次のいずれかを試してください。

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

また

if (objectList[i].ID == 'object' + searchterm) { ... }
于 2012-09-10T22:46:33.833 に答える