質問

それはArrayCollectionの中のアイテムの深さを得るために何とか可能ですか?

役に立ちましたか?

解決 2

ここに私のコードです...

public function getItemNestLevel(needle:Object, haystack:Object, level:Number = 0):Number
    {
        //iterate through items
        for each (var item:Object in haystack)
        {
            if (item == needle)
            {
                return level;
            }

            //iterate through item's properties
            for each (var child:Object in item)
            {
                if (child is Array || child is ArrayCollection)
                {
                    var lvl:Number = level + 1;
                    var num:Number = getItemNestLevel(needle, child, lvl);
                    if (num >= 0)
                    {
                        return num;
                    }
                }
            }
        }
        return -1;
    }

他のヒント

のLiveDocsするから

// Get the index of the item with the value ME.
var addedItemIndex:int=myAC.getItemIndex("ME");

未答え、私はできないポストのコメントます。

ライブドキュメントから

のhttp://livedocs.adobe .COM /フレックス/ 3 / langref / MX /コレクション/ ArrayCollection.htmlする

  

のArrayCollectionクラスは、ラッパーであります   Aとして配列を公開するクラス   アクセスすることができ、コレクションと   メソッドを使用して操作し、   ICollectionViewののプロパティまたは   IListインターフェイス

なぜあなたはArrayCollectionのは、深さを持っていると思いますか?

私はあなたがサブArrayCollectionsのArrayCollectionのを作ることができますね。このような場合は;そして、あなたはそのすべてのサブArrayCollectionsて検索という機能を書くことができます。

編集:私はあなたが示唆された機能でいくつかのバグがあると思います。ここで私が試した機能があります:

public function getItemNestLevel2(needle:Object, haystack:Object):Number
{
    for each (var item:Object in haystack)
    {
        if (item == needle)
            return 0;
        if (item is Array || item is ArrayCollection)
        {
            var nestLevel:int = getItemNestLevel2(needle, item);
            if (nestLevel >= 0)
                return nestLevel + 1;
        }
    }
    return -1;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top