Javascript 如何递归树并创建父路径节点数组?
我有一棵像这样的树:Javascript 如何递归树并创建父路径节点数组?,javascript,Javascript,我有一棵像这样的树: { "name": "A", "children": [ { "name": "B", "children": [ { "name": "C", "children": [ { "n
{
"name": "A",
"children": [
{
"name": "B",
"children": [
{
"name": "C",
"children": [
{
"name": "D"
},
{
"name": "E"
}
]
},
{
"name": "F"
}
]
},
{
"name": "G",
"children": [
{
"name": "H"
}
]
}
]
}
我希望遍历我的树,并为每个节点添加父组件的路径信息。因此,使用上面的示例,我正在寻找如何生成:
{
"name": "A",
"path": [
"A"
],
"children": [
{
"name": "B",
"path": [
"A",
"B"
],
"children": [
{
"name": "C",
"path": [
"A",
"B",
"C"
],
"children": [
{
"name": "D",
"path": [
"A",
"B",
"C",
"D"
]
},
{
"name": "E",
"path": [
"A",
"B",
"C",
"E"
]
}
]
},
{
"name": "F",
"path": [
"A",
"B",
"F"
]
}
]
},
{
"name": "G",
"path": [
"A",
"G"
],
"children": [
{
"name": "H",
"path": [
"A",
"G",
"H"
]
}
]
}
]
}
这是一个小的递归迭代建议,用于设置利用此的路径 资料来源:
- :
bind()
方法创建一个新函数,在调用该函数时,将其this关键字设置为提供的值,并在调用新函数时提供的任何参数之前提供给定的参数序列
- ,thisArg参数:
thisArg
参数,则调用时会将该参数传递给callback,用作其this值。否则,将传递该值作为其此值使用。回调最终可观察到的该值是根据以下条件确定的
函数设置路径(o){
o、 path=this.concat(o.name);
Array.isArray(o.children)和&o.children.forEach(setPath,o.path);
};
var object={“name”:“A”,“children”:[{“name”:“B”,“children”:[{“name”:“C”,“children”:[{“name”:“D”},{“name”:“E”}]},{“name”:“F”}]},{“name”:“G”,“children”:[{“name”:“H”}]}]};
绑定([])(对象);
document.write(''+JSON.stringify(object,0,4)+'')代码>听起来像一个简单的例子就足够了。递归地思考。您如何确保每个孩子都检索到父路径加上自己的路径?谢谢您的帮助。这不是家庭作业。我已经尝试过使用while循环来遍历树的各种实现,但是我不能得到正确的输出。这是一个更好的处理方法。哇,谢谢。我只是想了解解决这类问题的一般方法。你的解决方案非常简洁。我肯定需要读一点来理解它是如何工作的。“干杯!”乌龟,不客气。有关更多信息,请参见编辑。