从对象创建完整的层次化路径

时间:2015-07-24 18:15:10

标签: path hierarchical-data

所以这是我的问题。我有具有name属性和parentId属性的对象。我想要做的是构造一个包含完整分层路径的字符串,类似于文件路径(\ grandparent \ parent \ child)。

SomeObject:
  public var parentId:String;
  public var someObjectName:String;

我似乎无法找到一种不会大规模扩展或重做大量工作的方法。

当前的想法:添加一个名为getFullPathArray的函数,它看起来像这样

    getFullPath(parentIdHashMap:Map,returnArray:Array):Array
    {
         returnArray.addFirst(this.someObjectName);
         if( parentId != null )  
         {
             var parentSomeObject = parentIdHashMap[this.parentId]
             parentSomeObject(parentIdHashMap,returnArray)             
         }
         return returnArray
    }

这个函数的问题在于每个someObject都会根据看起来很麻烦的后代数被多次触摸。

第二个想法:

将关卡标识符附加到我的模型。然后我可以按级别进行排序并向下进行。我看到的问题是必须保持水平。这不是一个问题,这对我来说是一个额外的逻辑,可以在以后打破并软化。

我知道这个问题在多个领域已经多次解决,但我似乎无法找到一个不关心创建和维护数据结构的好方法。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

可能你可以使用递归,有些事情是这样的:

userConf