JS将点分离的字符串转换为分层对象

时间:2016-06-02 05:57:51

标签: javascript

我正在尝试将字符串列表转换为分层树。

我会得到一个JSON的例子:

{
    "log_names": [
        "one",
        "one.one",
        "one.two",
        "one.three",
        "one.three.one",
        "two",
        "three",
        "three.one",
        "three.one.three.two",
        "four.one.some.more.stuff"
    ]
}

输出
在这里,每个级别都是一个对象,每个子记录器都是它的父级的子级 每个记录器都是一个对象,可能包含作为其子记录器的其他对象。而且,与three.two中的three.one.three.two类似,因为three.one.three下没有其他记录器,它将被视为单个记录器而不是父记录器。另一个例子是four.one.some.more.stuff。因为four下没有其他记录器,所以它只是一个与之前相同逻辑的记录器

{
    "one": {
        "one": { },
        "two": { },
        "three": {
            "one" : { }
        }
    },
    "two": { },
    "three": {
        "one": {
            "three.two" : { }
        }
    },
    "four.one.some.more.stuff" : { }
}

我很难实现上述逻辑(没有其他儿子所以它只是一个记录器,而不是父记录器)。

有些建议甚至代码示例都不错

1 个答案:

答案 0 :(得分:1)

最后,算法在对象中查找现有键并将其用于下一次迭代,否则生成一个新对象,其余数组为键。

params