程序设计与算法-----迭代算法

迭代算法:

如下, 给出一个数据结构:oldData,使它变成一个 节点层级结构, 满足条件:所有子节点的属性pid是其父节点的id, 于是可以这样设计:

 

  let oldData = [
            {id: 1, pid: 0, labelName: "test222"},
            {id: 3, pid: 1, labelName: "小明7"},
            {id: 5, pid: 1, labelName: "小明4"},
            {id: 6, pid: 3, labelName: "小明3"},
            {id: 7, pid: 1, labelName: "小明22"},
            {id: 60, pid: 0, labelName: "DFss"},
            {id: 12, pid: 0, labelName: "hhhlo"}

        ]
        //首次遍历出pid为0,也就是根节点的所有节点,这是第一列父节点;
        let initialData = oldData.filter((item)=>{
            if(item.pid === 0){
                return item;
            }
        })
        //开始迭代,迭代函数recur接受一个子节点列表做为参数;
        function recur(childrens){
           //创建一个临时空数组,表示符合条件的子节点集合
           let _childrens = [];
            //遍历迭代参数中childrens的个数
            for(let i=0;i0 && recur(_childrens)
          
            }
          

        }
        recur(initialData);

 

你可能感兴趣的:(程序设计与算法)