在javascript或typescript中将id\u父项添加到嵌套树数组中
我有一个在javascript或typescript中将id\u父项添加到嵌套树数组中,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个树型的嵌套数组,每个项都有一个id,我想在子项中添加id\u父项,该父项将是其祖先数组的id let data = [ { "id": "1", "nombre": "TITULO A", "children": [ {
树型的嵌套数组
,每个项都有一个id
,我想在子项
中添加id\u父项
,该父项将是其祖先数组的id
let data = [
{
"id": "1",
"nombre": "TITULO A",
"children": [
{
"id": "2",
"nombre": "SUB TITULO A",
"children": [
{
"id": "3",
"nombre": "ITEM A",
"children": [
{
"id": "4",
"nombre": "SUB ITEM A",
"children": [
{
"id": "5",
"nombre": "DETALLE ITEM A",
"children": []
},
{
"id": "6",
"nombre": "DETALLE ITEM A2",
"children": []
}
]
}
]
}
]
}
]
},
{
"id": "7",
"nombre": "TITULO B",
"children": [
{
"id": "8",
"nombre": "SUB TITULO B",
"children": [
{
"id": "9",
"nombre": "ITEM B",
"children": [
{
"id": "10",
"nombre": "SUB ITEM B",
"children": []
},
{
"id": "11",
"nombre": "SUB ITEM B2",
"children": []
},
{
"id": "12",
"nombre": "SUB ITEM B3",
"children": []
}
]
},
{
"id": "13",
"nombre": "ITEM B2",
"children": []
}
]
}
]
}
]
}
}
预期结果
let result = [
{
"id": "1",
"id_parent": null,
"nombre": "TITULO A",
"children": [
{
"id": "2",
"id_parent": "1",
"nombre": "SUB TITULO A",
"children": [
{
"id": "3",
"id_parent": "2",
"nombre": "ITEM A",
"children": [
{
.
.
.
我找到了一个解决方案,使用递归的函数
,如果子项
有项
,它就会迭代
addParent(data){
let parent = null;
Object.keys(data).forEach(x => {
this.setParent(data[x], parent);
});
}
setParent(node, parent){
node.id_parent = parent;
node.children.forEach(x => {
this.setParent(x, node.id);
});
}