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

通常开发中后台给的数据是这样的基本格式,前端需要实现分类、地址等树形(层级关系)场景。思路[]->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))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容