【发布时间】:2015-08-04 03:41:37
【问题描述】:
我对此有点坚持。我想从一个平面数组创建一个树结构。假设我有这个输入:
var input = [
["a","b","c"],
["a", "b","d"],
["e","f","g"],
];
我想创建一个如下所示的树结构:
// output:
[
{
id: "a",
children: [
{id: "b", children: [
{id: "c", children: []},
{id: "d", children: []}
]},
]
},
{
id: "e",
children: [
{
id: "f",
children: [{ id: "g", children: []}]
},
]
}
]
我正在考虑这样做的一种方法是拥有所有父级的映射并遍历输入数组以设置父级到子级的映射。但是在尝试从该地图实际构造树对象并避免重复时,我遇到了问题。任何指针表示赞赏,谢谢!
【问题讨论】:
-
从最里面的对象开始,然后将这些对象添加到下一个级别,然后将该对象添加到它上面的级别。
-
@Jordan 所以本质上是通过在每个项目上从右到左迭代来创建树?
-
我想你可以这样想。但是,基本上我要说的是创建你的内部数组,然后使用 array.push 将该组添加到它上面的数组中。
标签: javascript