Search code examples
apache-flexarrayscollectionsdepth

Item's depth in ArrayCollection


is it somehow possible to get item's depth in ArrayCollection?


Solution

  • here is my code...

    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;
        }