美文网首页
js实现基本数据格式->树形数据格式

js实现基本数据格式->树形数据格式

作者: 爱祖国 | 来源:发表于2019-06-28 15:44 被阅读0次

    通常开发中后台给的数据是这样的基本格式,前端需要实现分类、地址等树形(层级关系)场景。思路[]->json->[]

    let allDatas = [
      {
        id: 5,
        name: 'ddddd',
        parendId: 4
      },
      {
        id: 3,
        name: 'bbbb',
        parendId: 1
      },
      {
        id: 2,
        name: 'aaaaa',
        parendId: 3
      },
      {
        id: 16,
        name: 'jjjj',
        parendId: ''
      }
    ];
    function toTreeData( data, config ){ 
                var _id = "id";
                var _pid = "parendId"; 
                var _children = "children";
                if( config ){
                    _id = config.id; 
                };
                var map = {};
                data.forEach(function (item) {
                    if( !item[_pid] ){
                        item[_pid] = '~';
                    };
                    var _idval = item[_id].toString(); 
                    map[_idval] = item;
                }); 
                var val = []; 
                data.forEach(function (item) { 
                    var _pidval = item[_pid].toString(); 
                    var parent = map[ _pidval ]; 
                    if (parent) { 
                        (parent[_children] || ( parent[_children] = [] )).push(item); 
                    } else { 
                        val.push(item);
                    };
                });  
                return val;
    } 
    console.log(toTreeData(allDatas))
    

    相关文章

      网友评论

          本文标题:js实现基本数据格式->树形数据格式

          本文链接:https://www.haomeiwen.com/subject/jlfecctx.html