Tree2List按照指定的格式输出数据

105 阅读1分钟
let Tree2List = (root)=>{
    let res = []
    let dfs = (res,node,cnt = 0)=>{
        res.push({"name":node.name,"id":cnt)
        if(!node.children||!node.children.length){
            return
        }
        let children = node.children
        children.forEach(child=>{
            dfs(res,child,cnt+1)
        })
    }
    dfs(res,root,0)
    return res
}

let ans = (arr)=>{
    for(let i = 0;i<arr.length;i++){
        let str = "-"
        for(let j = 0;j<arr[i].id;j++){
            str += "*"
        }
        str.replace(/\*/g," ")
        str += arr[i].name
        console.log(str)
    }
}



/**
测试数据
要求按照以下格式输出
-AA
 -BB
  -FF
  -GG
 -CC
  -DD
   -HH
  -EE
   -II
*/
const treeData = [
  {
    id: 1001,
    name: 'AA',
    children: [
      {
        id: 1002,
        name: 'BB',
        children: [
          {
            id: 1006,
            name: 'FF',
          },
          {
            id: 1007,
            name: 'GG',
          },
        ],
      },
      {
        id: 1003,
        name: 'CC',
        children: [
          {
            id: 1004,
            name: 'DD',
            children: [
              {
                id: 1008,
                name: 'HH'
              },
            ],
          },
          {
            id: 1005,
            name: 'EE',
            children: [
              {
                id: 1009,
                name: 'II'
              },
            ],
          },
        ],
      },
    ],
  },
];