以某种方式可以在ArrayCollection中获取项目的深度吗?
答案 0 :(得分:0)
来自livedocs:
// Get the index of the item with the value ME.
var addedItemIndex:int=myAC.getItemIndex("ME");
答案 1 :(得分:0)
不是答案,我无法发表评论。
来自实时文档:http://livedocs.adobe.com/flex/3/langref/mx/collections/ArrayCollection.html
ArrayCollection类是一个包装器 将Array公开为的类 可以访问的集合和 使用方法和操纵 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;
}
答案 2 :(得分:0)
这是我的代码......
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;
}