1 Star 0 Fork 0

f151329 / myback

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
aa.js 1.94 KB
一键复制 编辑 原始数据 按行查看 历史
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)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/f151329/myback.git
git@gitee.com:f151329/myback.git
f151329
myback
myback
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891