前端根据一个数组便利出部门树,菜单树,一个js便利函数即可解决

编程入门 行业动态 更新时间:2024-10-09 14:22:20

前端根据一个数组<a href=https://www.elefans.com/category/jswz/34/1708164.html style=便利出部门树,菜单树,一个js便利函数即可解决"/>

前端根据一个数组便利出部门树,菜单树,一个js便利函数即可解决

部门树,菜单树其实底层都是一样的,这是后端返回的数组

let lists = [{ name: '系统管理', id: '1', pid: '0' },{ name: '系统管理二级菜单1', id: '10', pid: '1' },{ name: '系统管理二级菜单2', id: '11', pid: '1' },{ name: '系统管理二级菜单子菜单1', id: '110', pid: '11' },{ name: '系统管理二级菜单子菜单的子菜单', id: '1101', pid: '110' },{ name: '角色管理', id: '2', pid: '0' },{ name: '角色管理二级菜单', id: '20', pid: '2' },{ name: '角色管理三级菜单', id: '200', pid: '20' },{ name: '角色管理四级菜单', id: '2000', pid: '200' },{ name: '角色管理五级菜单', id: '20000', pid: '2000' },{ name: '用户管理', id: '3', pid: '0' },{ name: '用户管理二级', id: '30', pid: '3' }
]

这是我们的遍历函数

let fun = function (list, id) {let child = []; // 这是用来装子级的数组list.forEach(item => {if (item.pid == id) { // 是当前循环的菜单的子集,写入数组// 然后当前整个item可能还不是最后一集菜单,继续执行这个fun方法,找找看有没有子集child.push(item)item.child = fun(list, item.id)}})return child; // 返回当前循环最后得到的菜单集合
}

最后只需要调用这个方法,即可得到想要的部门数,适用于动态部门树,比如后台可自动添加,前端有不知道到底有多少层级,用这个函数就完美解决啦

let obg = fun(lists, "0") // 我这里的一级菜单pid都为0,所以第一次调用传0,可以根据实际情况变化
// 最后得出的结果如下
let menu = [{"name": "系统管理", "id": "1", "pid": "0", "child": [{"name": "系统管理二级菜单1", "id": "10", "pid": "1", "child": [ ]}, {"name": "系统管理二级菜单2", "id": "11", "pid": "1", "child": [{"name": "系统管理二级菜单子菜单1", "id": "110", "pid": "11", "child": [{"name": "系统管理二级菜单子菜单的子菜单", "id": "1101", "pid": "110", "child": [ ]}]}]}]}, {"name": "角色管理", "id": "2", "pid": "0", "child": [{"name": "角色管理二级菜单", "id": "20", "pid": "2", "child": [{"name": "角色管理三级菜单", "id": "200", "pid": "20", "child": [{"name": "角色管理四级菜单", "id": "2000", "pid": "200", "child": [{"name": "角色管理五级菜单", "id": "20000", "pid": "2000", "child": [ ]}]}]}]}]}, {"name": "用户管理", "id": "3", "pid": "0", "child": [{"name": "用户管理二级", "id": "30", "pid": "3", "child": [ ]}]}
]

更多推荐

前端根据一个数组便利出部门树,菜单树,一个js便利函数即可解决

本文发布于:2024-03-12 02:39:56,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1730504.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:便利   数组   函数   菜单   部门

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!