ReactNative 递归算法获取树状集合

第一种方式:将树状数据处理为没有层级的数据、

这样便于搜索数据,只需要一个filter函数就行了

需要处理的数据
var data = [
           {
               name: '中国',
               children: [
                   {
                       name: '北京',

                   },
                   {
                       name: '河南省',
                       children: [
                           {
                               name: '郑州市',
                               children: [
                                   {
                                       name: '中牟县',
                                       children: [
                                           {
                                               name: '方特欢乐园'
                                           },
                                           {
                                               name: '绿博园'
                                           }
                                       ]
                                   },
                                   {
                                       name: '太康县',
                                       children: [
                                           {
                                               name: '独塘乡'
                                           },
                                           {
                                               name: '周口市'
                                           }
                                       ]
                                   },
                                   {
                                       name: '淮阳',
                                       children: [
                                           {
                                               name: '西华'
                                           },
                                           {
                                               name: '柘城'
                                           }
                                       ]
                                   },

                               ]
                           }
                       ]
                   },
                   {
                       name: '苏州',
                       children:null
                   }
               ]
           }
       ];
处理数据的函数
    //获取树状结构中的所有子集
    getAllChildrenData(data){
        var array = [];
        for(var i = 0;i 0){
                // console.log(obj.name);
              array = array.concat(this.getAllChildrenData(obj.children,false));//递归算法
            }
        }
        return array;
    }

第二种:将集合转化为树状结构

            var data = [
                {"id":2,"name":"第一级1","pid":0},
                {"id":3,"name":"第二级1","pid":2},
                {"id":5,"name":"第三级1","pid":4},
                {"id":100,"name":"第三级2","pid":3},
                {"id":6,"name":"第三级2","pid":3},
                {"id":601,"name":"第三级2","pid":6},
                {"id":602,"name":"第三级2","pid":6},
                {"id":603,"name":"第三级2","pid":6}
               ];
递归算法:
            function arrayToJson(treeArray){
                var r = [];
                var tmpMap ={};
               
                for (var i=0, l=treeArray.length; i

你可能感兴趣的:(ReactNative 递归算法获取树状集合)