将有父子关系的一维数组转换成树形结构(多维)数据

已知原有数据 :

var data=[
  { id: 40, parentId: 31, note: "的萨达是" }, 

  { id: 20, parentId: 11, note: "的萨达是" },
  { id: 22, parentId: 20, note: "dsadas" },
  { id: 12, parentId: null, note: "dsadasad萨达s" }, 
  { id: 11, parentId: undefined, note: "dqwds" }, 
  { id: 24, parentId: 22, note: "搜索" },
  { id: 34, parentId: 22, note: "搜索" }
]

需要考虑的问题 :

  • 不更改源数据
  • 避免循环引用, 即 a的parentId为b, b的parentId为a

发挥你的大脑, 来个最优解

慕哥9229398
浏览 843回答 4
4回答

PIPIONE

const toTree = (arr, pID) => arr .filter(({ parentId }) => parentId == pID) .map(a => ({ ...a, childers: toTree(arr.filter(({ parentId }) => parentId != pID), a.id) }))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python