编辑代码

// const list = [
//     {id: 1, name: 'A', parentId: 0},
//     {id: 2, name: 'B', parentId: 0},
//     {id: 3, name: 'C', parentId: 1},
//     {id: 4, name: 'D', parentId: 1},
//     {id: 5, name: 'E', parentId: 2},
//     {id: 6, name: 'F', parentId: 3},
//     {id: 7, name: 'G', parentId: 2},
//     {id: 8, name: 'H', parentId: 4},
//     {id: 9, name: 'I', parentId: 5}
// ];

// const getTree = (arr,parentId=0) => {
//     let res = []
//     arr.map(item => {
//         if(item.parentId == parentId) {
//             let newNode = {
//                 id: item.id,
//                 name: item.name,
//                 children: getTree(arr,item.id)
//             }
            
//             res.push(newNode)
//             console.log(res,'res')
//         }
//     })
//     return res

// }
// console.log(getTree(list))
const tree = [
  {
    id: 1,
    name: "四川省",
    children: [
      {
        id: 5,
        name: "成都市",
        children: [
          {
            id: 6,
            name: "锦江区",
            children: [
              { id: 7, name: "九眼桥" },
              { id: 8, name: "兰桂坊" },
            ],
          },
        ],
      },
    ],
  },
  {
    id: 2,
    parent_id: 0,
    name: "广东省",
    children: [
      {
        id: 9,
        parent_id: 2,
        name: "东莞市",
        children: [{ id: 10, parent_id: 9, name: "长安镇" }],
      },
    ],
  },
  {
    id: 3,
    parent_id: 0,
    name: "江西省",
    children: [{ id: 11, parent_id: 3, name: "南昌市" }],
  },
]
const flat = (arr) => {
    let res = []
    const render = (arr,parentId=0) => {
        arr.map(item=> {
            const {id,name} = item
            res.push({
                id,
                name,
                parentId
            })
            if(item.children && item.children.length) {
                render(item.children,item.id)
            }
        })
    }
    render(arr)
    return res
}
console.log(flat(tree))