美文网首页
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