学习笔记:函数式编程+递归+数据处理

let categories = [
  {id: 'animals', parent: null},
  {id: 'mammals', parent: 'animals'},
  {id: 'cats', parent: 'mammals'},
  {id: 'dogs', parent: 'mammals'},
  {id: 'dogA', parent: 'dogs'},
  {id: 'dogB', parent: 'dogs'},
  {id: 'catA', parent: 'cats'},
  {id: 'catB', parent: 'cats'},
]

let makeTree = (categories, parent)=>{
  let node = {};
  categories
    .filter(c => c.parent === parent)
    .forEach(c => node[c.id]=
      makeTree(categories, c.id))
  return node;
}
console.log(
  makeTree(categories, null),
  null,
  2
)

猜你喜欢

转载自blog.csdn.net/ChasenZh/article/details/110211473