let menuList = [
{ id: 1, parentId: null, name: "用户" },
{ id: 2, parentId: null, name: "系统" },
{ id: 3, parentId: 1, name: '员工管理' },
{ id: 4, parentId: 2, name: '系统管理' },
{ id: 5, parentId: 3, name: '正式员工' },
{ id: 6, parentId: 4, name: '设备管理' }
]
function formatToTree(menu) {
// 1. 获取一级菜单数据
// 2. 非一级菜单数据
let parent = menu.filter(item => item.parentId === null)
let children = menu.filter(item => item.parentId !== null)
deepData(parent, children)
function deepData(parent, children) {
parent.map(p => {
console.log("p=>", p)
delete p.parentId
children.map(c => {
if (p.id === c.parentId) {
const _c = JSON.parse(JSON.stringify(children))
deepData([c], _c)
if (p.children) {
p.children.push(c)
} else {
p.children = [c]
}
}
})
})
}
return parent
}
console.log("result=>", formatToTree(menuList))