| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 
 | const data = [{id: 1, name: "1-1",},
 {id: 2, name: "2-1",},
 {id: 3, name: "3-1",},
 {id: 4, name: "1-2", parentId: 1},
 {id: 5, name: "1-3", parentId: 1},
 {id: 6, name: "2-2", parentId: 2},
 {id: 7, name: "2-3", parentId: 2},
 {id: 8, name: "2-4", parentId: 7},
 ]
 
 const arrayToTree = (data) => {
 return data.reduce(function (prev, curr, i, arr) {
 curr.children = arr.filter(item => item.parentId === curr.id)
 if (!curr.parentId) {
 prev.push(curr)
 }
 return prev;
 }, []);
 }
 const treeData = arrayToTree(data)
 console.log(JSON.stringify(treeData, null, 2))
 
 |