Converting flat structure to hierarchical

前端 未结 6 1417
感情败类
感情败类 2020-12-05 12:02

I need to create function which will be able to convert flat object to recursive object. Here is my example: I have flat array:

var flatArray = [
    {
              


        
6条回答
  •  庸人自扰
    2020-12-05 12:24

    you can use bellow code in Angular.

    flatToHierarchy(flat: any[], parent: any = null, Key: string = 'id', parentKey: string = 'parentId') {
      var leafs: any = [];
    
      if (!parent) {
        leafs = flat.filter((x: { [x: string]: any; }) => x[parentKey] === null);
      } else {
        leafs = flat.filter((x: { [x: string]: any; }) => x[parentKey] === parent[Key]);
      }
    
      if (!leafs || leafs.length == 0) {
        return;
      } else {
          leafs.forEach((item: { children: any[]; }) => {
          item.children = [];
          item.children = this.flatToHierarchy(flat, item);
        });
      }
      return leafs;
    }
    

    use same like this

     this.flatToHierarchy(flatItems);
    

提交回复
热议问题