代码拉取完成,页面将自动刷新
const flatData = [
{
_id: '625417e3453b6cf65dddff6c',
menuName: '菜单管理',
menuIcon: 'el-icon-menu',
menuPath: '/menu',
__v: 0,
},
{
_id: '6254181d453b6cf65dddff6e',
menuName: '菜单添加',
menuIcon: 'el-icon-menu',
menuPath: '/menu/add',
parentid: '625417e3453b6cf65dddff6c',
__v: 0,
},
{
_id: '6254182b453b6cf65dddff70',
menuName: '菜单修改',
menuIcon: 'el-icon-menu',
menuPath: '/menu/edit',
parentid: '625417e3453b6cf65dddff6c',
__v: 0,
},
{
_id: '62541856453b6cf65dddff72',
menuName: '菜单添加的子菜单',
menuIcon: 'el-icon-menu',
menuPath: '/menu/add/submenu',
parentid: '6254181d453b6cf65dddff6e',
__v: 0,
},
{
_id: '6263d22b8a09ec1a4cb6e9cc',
menuName: '菜单添加的子菜单的子菜单',
menuIcon: 'el-icon-menu',
menuPath: '/menu/add/submenu/submenu1',
parentid: '62541856453b6cf65dddff72',
__v: 0,
},
]
const arrMap = new Map()
// 将数组抓换位map,key是id,value是本身
flatData.map((value, index) => {
arrMap.set(value._id, value)
})
const treeData = []
treeData.push(flatData[0])
flatData[0].menuName = 'zf'
console.log(flatData[0], 'flatData[0]')
console.log(arrMap.get('625417e3453b6cf65dddff6c'), 'arrMap')
console.log(treeData[0], 'treeData[0]')
console.log(flatData[0] === arrMap.get('625417e3453b6cf65dddff6c'))
console.log(treeData[0] === arrMap.get('625417e3453b6cf65dddff6c'))
// console.log arrMap.has('62541856453b6cf65dddff71'))
for (const item of flatData) {
// 如果该项没有parentid则是根节点,直接push,否则就是子节点,用该pid在map里查找到对应的项,
// 然后将该项push到该项的children属性上
if (!item.parentid) {
treeData.push(item)
continue
}
// 找到该项的父元素
const aa = arrMap.get(item.parentid)
// console.log(aa, 'aa')
if (!aa.children) {
aa.children = []
}
aa.children.push(item)
}
console.log(treeData)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。