前端学习之JS将父子关系的数据转换成树结构数据

1.数据输入

id name

parent_id

1 aa  
2 bb  
3 cc 1
4 dd 1
5 ee 2
var data = [

{id: 1, name: 'aa'},

{id: 2, name:'bb'},

{id: 3, name: 'cc', parent_id: 1},

{id: 4, name: 'dd', parent_id: 1},

{id: 5, name: 'ee', parent_id: 2},

]

2.数据输出

及将上面数据处理成如下格式

tree = [
   {
       id: 1, 
       name: 'aa',
       children: [
          { id: 3, name: 'cc', parent_id: 1},
          { id: 4, name: 'dd', parent_id: 1}
        ]
    },
   {
        id: 2,
       name: 'bb',
      children: [
        { id: 5, name: 'ee', parent_id: 2}
       ]
    }
    
]

3.处理代码

const tree = data.filter((father) => {
        const arr = data.filter((child) => {
          return father.id == child.parent_id
        })
        if (arr.length > 0) {
          father.children = arr
        }
        return father.parent == null
      })
      console.log(tree)

 

posted @ 2021-10-21 15:36  Cozy11  阅读(415)  评论(0)    收藏  举报