node.js 树状菜单递归算法
来源:互联网 发布:点歌软件电脑 编辑:程序博客网 时间:2024/06/03 21:13
最近后台系统要做一个后台系统菜单无限极显示的东西。需要用到递归。代码如下:
1,递归方法:
解释:p为父菜单节点。o为菜单列表。
function dg(p, o) {
for (var i = 0; i < o.length; i++) {
var t = o[i];
if (t.code.length == p.code.length + 2 && t.code.indexOf(p.code) > -1) {
p.menus.push(t);
dg(t, o);
}
}
}
2,调用
var menusout = new Array();
var m = new Array();
//下文的menus指的是数据库查询出的数据。按此种格式排序。11,1101,1102,12,1201,120101,1202...
for (var i = 0; i < menus.length; i++) {var t = {};
t.groupName = menus[i].name;
t.icon = menus[i].icon;
t.code = menus[i].code;
t.title = menus[i].title;
t.url = menus[i].url;
t.name = menus[i].name;
t.menus = new Array();//此处的逻辑是先假设其有下级菜单。赋值为空数组。递归时如果有下级菜单。则只需要往此处push其子菜单即可。
t.level = menus[i].level;
t.type= menus[i].type;
m.push(t);
}
for (var i = 0; i < m.length; i++) {
if (m[i].level == "1") {
dg(m[i], m);
menusout.push(m[i]);
}
}
最后生成的格式为11:它的menus为1101,1102。12:它得menus为1201,1202,其中1201的menus为:120101。
0 0
- node.js 树状菜单递归算法
- 递归--绑定树状菜单
- Js 树状菜单
- js树状菜单类记录
- [递归]二维数组显示成树状菜单
- C# 递归显示 TreeView 树状菜单树!
- 无限级标准JS树状导航菜单
- 树状结构显示之递归算法
- 3.Node.js 自定义微信菜单
- node.js+Mysql实现无限菜单分类
- node.js递归打印文件目录、文件名
- 树状菜单
- 树状菜单
- 树状菜单
- 树状菜单
- 树状递归
- 递归算法实现树型菜单
- -汉诺塔-递归算法(JS递归函数)
- SQL查询优化:如何写出高性能SQL语句
- 合并两个排序的链表
- 智能指针的发展
- 序列化与反序列化---RPC
- vim设置
- node.js 树状菜单递归算法
- css filter滤镜实例分析
- C++第四次作业
- NFS安装笔记
- @JsonInclude
- LinearLayout半透明效果
- tomcat localhost_access_log查看http请求
- arcgis 10.1 desktop安装oracle客户端,直连报错
- Assembly.CreateInstance()与Activator.CreateInstanc