树形数据指定节点添加数据

47 阅读1分钟
let data = [
    {
        id: 1,
        label: '一级 1',
        children: [
            {

                id: 4,
                label: '二级 1-1',
                children: [
                    {

                        id: 9,
                        label: '三级 1-1-1'
                    }, 
                    {

                        id: 10,
                        label: '三级 1-1-2'
                    },
                ]
            },
        ]
    },
    {
        id: 11,
        label: '一级 2',
    }
]
const appendNodeInTree = (id, tree, obj) => {

    tree.forEach(ele=> {

        if (ele.id === id) {

            ele.children ? ele.children.push(obj) : ele.children = [obj]
        } else {

          if (ele.children) {

              appendNodeInTree(id, ele.children, obj)
          }
        }
    })
    return tree
}
console.log(appendNodeInTree(4, data, {
	id: 13,
	label: '三级 1-1-3',
}))