element tree 사용

1456 단어 자바 script
프로젝트 의 배경 에서 전 달 된 노드 데 이 터 는 다음 과 같다.
let data = [
    {
      id: '1',
      name: 'A',
      parentId: '-1'
    }, {
      id: '2',
      name: 'B',
      parentId: '-1'
    }, {
      id: '3',
      name: 'C',
      parentId: '1'
    }, {
      id: '4',
      name: 'D',
      parentId: '1'
    }, {
      id: '15',
      name: 'E',
      parentId: '2'
    }, {
      id: '6',
      name: 'F',
      parentId: '4'
    }, {
      id: '7',
      name: 'G',
      parentId: '3'
    }, {
      id: '8',
      name: 'H',
      parentId: '6'
    }
  ];

이제 그 를 element tree 의 구조 로 바 꿔 야 합 니 다.
  let tree = [];
  let o = {};

  initDataStruct();
  parse(o, tree);

  console.log(tree);

  function initDataStruct() {
    data.forEach((v) => {
      v.children = [];
    })

    data.forEach((v, i) => {
      o[v.parentId] = [];
    });

    data.forEach((v, i) => {
      o[v.parentId].push(v);
    });

    //      
    tree = o['-1'];
  }

  function parse(o, tree) {
    for(let i = 0; i < tree.length; i++) {
      for(attr in o) {
        if(tree[i].id === o[attr][0].parentId) {
          tree[i].children = o[attr];
        }
      }
      parse(o, tree[i].children);
    }
  }
ok,전환 성공!

좋은 웹페이지 즐겨찾기