let input = [ {id: 1, val: '学校', parentId: null}, {id: 2, val: '班级1', parentId: 1}, {id: 3, val: '班级2', parentId: 1}, {id: 4, val: '学生1', parentId: 2}, {id: 5, val: '学生2', parentId: 3},];let output = { id: 1, val: '学校', parentId: null, children: [ { id: 2, val: '班级1' } ]}function arrayToTree(array) { let root = array[0]; array.shift(); let tree = { id: root.id, val: root.val, children: array.length ? toTree(root.id, array) : [] }; return tree;}function toTree(parentId, array) { let children = []; let len = array.length; for (let i = 0; i < len; i++) { let node = array[i]; if (node.parentId === parentId) { children.push({ id: node.id, val: node.val, children: toTree(node.id, array) }) } } return children;}console.log(arrayToTree(input))