js 트 리 구 조 를 배열 로 변환

js 트 리 구 조 를 배열 로 변환
  • 1. 데이터 구조
  • a. 나무 구조
  • 실례
  • b. 배열 구조
  • 인 스 턴 스 출력 결과
  • 2. 알고리즘 실현
  • 1. 데이터 구조
    나무 구조
    const treeStructure = {
      name: Id, // name Id,   Number, String.    
      children: [treeStructure], // treeStructure   
      //       
    }
      
    

    실례
    const treeData = {
      name: 1,
      children: [{
        name: 2,
        children: [{
          name: 4,
          children: [{
            name: 7,
            children: [{
              name: 8,
              children: []
            }, {
              name: 9,
              children: []
            }]
          }],
        }, {
          name: 5,
          children: [],
        }]
      }, {
        name: 3,
        children: [{
          name: 6,
          children: [],
        }],
      }],
    }
    

    b. 배열 구조
    [{
      //       
      name: Id,
      children: [Id],
    }]
    

    인 스 턴 스 출력 결과
    [
      { name: 1, children: [ 2, 3 ] },
      { name: 2, children: [ 4, 5 ] },
      { name: 4, children: [ 7 ] },
      { name: 7, children: [ 8, 9 ] },
      { name: 8, children: [] },
      { name: 9, children: [] },
      { name: 5, children: [] },
      { name: 3, children: [ 6 ] },
      { name: 6, children: [] }
    ]
    

    2. 알고리즘 구현
    //   
    // 1.      treeData  ,  []
    // 2.      treeData      [    ].concat(transfer(   ))
    //     transfer  ,       ,            :arrayData
    function transfer(treeData) {
      if (!(!treeData.hasOwnProperty('name') || !treeData)) {
        let arr = []
        let obj = {}
        obj.name = treeData.name
        obj.children = treeData.children.map(value => {
          // [1] arr = arr.concat(transfer(value)) 
          return value.name
        })
        arr.push(obj)
        
        //          [1]   ,           
        treeData.children.forEach(value => {
          arr = arr.concat(transfer(value))
        })
        //
        
        return arr
      } else { //   treeData     
        return []
      }
    }
    
    const arrayData = transfer(treeData); // arrayData       ,   item   tree   
    console.log(arrayData)
    

    js 배열 을 트 리 구조 로 변환

    좋은 웹페이지 즐겨찾기