在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);
  });
}