使用递归算法将平行数据结构转换成树形结构

拿到一组简单数据如下

let defts = [

            {

                id: 1, name: "集团", pid: null

            },

            {

                id: 2, name: "子公司", pid: 1

            },

            {

                id: 3, name: "财务部门", pid: 2

            }

        ];

需要输出如图的结果 

使用递归算法将平行数据结构转换成树形结构_第1张图片

 实现代码如下

        function Menu(oldData, pid) {
            let newData = [];
            oldData.forEach(item => {
                if (item.pid == pid) {
                    newData.push(item);
                    item.children = Menu(oldData, item.id);
                }
            });

            return newData;
        }
        let dep = Menu(defts, null);
        console.log(dep)

完整代码:





    
    
    
    递归转换树形结构







你可能感兴趣的:(html,servlet,html5)