/* * @Description:  * @version: 0630 * @Author: YaoPengFei582 * @Date: 2021-06-30 16:27:17 * @LastEditors: YaoPengFei582 * @LastEditTime: 2021-06-30 17:55:12 */const flatTree = [  { id: "1-1", label: "1-1级", parentId: "1" },  { id: "2-1", label: "2-1级", parentId: "2" },  { id: "3-1", label: "3-1级", parentId: "3" },  { id: "1-2", label: "1-2级", parentId: "1" },  { id: "2-2", label: "2-2级", parentId: "2" },  { id: "3-2", label: "3-2级", parentId: "3" },  { id: "1-3", label: "1-3级", parentId: "1" },  { id: "2-3", label: "2-3级", parentId: "2" },  { id: "3-3", label: "3-3级", parentId: "3" },  { id: "1", label: "1级", parentId: "" },  { id: "2", label: "2级", parentId: "" },  { id: "3", label: "3级", parentId: "" },  { id: "1-1-1", label: "1-1-1级", parentId: "1-1" },  { id: "2-1-1", label: "2-1-1级", parentId: "2-1" },  { id: "3-1-1", label: "3-1-1级", parentId: "3-1" },]const resultTree = [  {    id: '1',    parentId: "",    label: "1级",    children: [      {        id: "1-1", label: "1-1级", parentId: "1", children: [          { id: "1-1-1", label: "1-1-1级", parentId: "1-1", children: [] },          { id: "1-1-2", label: "1-1-2级", parentId: "1-1", children: [] },        ]      },      {        id: "1-2", label: "1-2级", parentId: "1", children: []      },    ]  }, {    id: '2',    parentId: "",    label: "2级",    children: []  }, {    id: '3',    parentId: "",    label: "3级",    children: []  },]const firstLevelTree = flatTree.filter(node => !node.parentId)firstLevelTree.forEach(node => {  node.children = getChildNodeList(node.id, flatTree)})// 递归调用创立 ChildNodeListfunction getChildNodeList(id, tree) {  const childNodeList = tree.filter(node => node.parentId === id)  return childNodeList.map(childNode => {    return {      ...childNode,      children: getChildNodeList(childNode.id, tree)    }  })}console.log('firstLevelTree', firstLevelTree)

转换后的后果:

const result = [  {    "id": "1",    "label": "1级",    "parentId": "",    "children": [      {        "id": "1-1",        "label": "1-1级",        "parentId": "1",        "children": [          {            "id": "1-1-1",            "label": "1-1-1级",            "parentId": "1-1",            "children": []          }        ]      },      {        "id": "1-2",        "label": "1-2级",        "parentId": "1",        "children": []      },      {        "id": "1-3",        "label": "1-3级",        "parentId": "1",        "children": []      }    ]  },  {    "id": "2",    "label": "2级",    "parentId": "",    "children": [      {        "id": "2-1",        "label": "2-1级",        "parentId": "2",        "children": [          {            "id": "2-1-1",            "label": "2-1-1级",            "parentId": "2-1",            "children": []          }        ]      },      {        "id": "2-2",        "label": "2-2级",        "parentId": "2",        "children": []      },      {        "id": "2-3",        "label": "2-3级",        "parentId": "2",        "children": []      }    ]  },  {    "id": "3",    "label": "3级",    "parentId": "",    "children": [      {        "id": "3-1",        "label": "3-1级",        "parentId": "3",        "children": [          {            "id": "3-1-1",            "label": "3-1-1级",            "parentId": "3-1",            "children": []          }        ]      },      {        "id": "3-2",        "label": "3-2级",        "parentId": "3",        "children": []      },      {        "id": "3-3",        "label": "3-3级",        "parentId": "3",        "children": []      }    ]  }]