用递归的方式将普通数组格式数据转换成树结构数据

原始数组:

[{title: '', name: '',fav_res_parentid: ''},
{title: '', name: '',fav_res_parentid: ''},
{title: '', name: '',fav_res_parentid: ''}
……]

处理后的数组:

[{title: '', name: '', fav_res_parentid: '', children:[
    {title: '', name: '', fav_res_parentid: ''}
    {title: '', name: '', fav_res_parentid: ''}]
},
{title: '', name: '', fav_res_parentid: '', children:[
    {title: '', name: '', fav_res_parentid: '', children:[
        {title: '', name: '', fav_res_parentid: ''},
        {title: '', name: '', fav_res_parentid: ''}]
    },
    {title: '', name: '', fav_res_parentid: ''}]
}]        

数据转换的方法:

function getTree(nodes) {

    var gc = function( parentid ) {
        var cn = [];

        for (var i = 0; i < nodes.length; i++) {
            var n = nodes[i]; 

            if(n.fav_res_parentid == parentid){ 
                n.children = gc(n.fav_res_id);
                cn.push(n);
            };
            };
        return cn;
    };
    return gc(0); 
}; 

var _data = getTree( sourcedata );        

  

原文地址:https://www.cnblogs.com/yuguilin/p/5133445.html