var data = [
            { id: 1, title: 'a', pid: 0 },
            { id: 2, title: 'a1', pid: 1 },
            { id: 3, title: 'a11', pid: 2 },
            { id: 4, title: 'a12', pid: 2 },
            { id: 5, title: 'a2', pid: 1 },
            { id: 6, title: 'a21', pid: 5 },
            { id: 7, title: 'a', pid: 0 },
            { id: 8, title: 'b', pid: 7 },
            { id: 9, title: 'c', pid: 7 },
        ];



        function fn(data, pid) {
                let result=[];
                let temp;
                for(var i=0;i<data.length;i++){
                    if(data[i].pid==pid){
                        result.push(data[i]);  
                        temp= fn(data,data[i].id);  
                        if(temp.length>0){
                            data[i].children= temp;
                        }

                    }
                }
                return result

数组的递归调用

相关文章: