ArrayCollectionの中のアイテムの深さ
-
21-09-2019 - |
質問
それは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;
}
所属していません StackOverflow