树状结构 父子节点 递归 recursion n级 树
树形控件 Tree - Ant Design https://ant-design.gitee.io/components/tree-cn/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function dig(path = '0' , level = 3) { const list = []; for ( let i = 0; i < 10; i += 1) { const key = `${path}-${i}`; const treeNode = { title: key, key, }; if (level > 0) { treeNode.children = dig(key, level - 1); } list.push(treeNode); } return list; }<br><br> |
console.log(dig("0",4))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | 456 <script> const permissionData = [ { "title" : "水果" , "key" : 90101, "children" : [ { "title" : "用户管理" , "key" : 90100, "children" : [ { "title" : "用户管理查看" , "key" : 90110 }, { "title" : "添加" , "key" : 90111 }, { "title" : "修改" , "key" : 90112 }, { "title" : "删除" , "key" : 90113 } ] } ] }, { "title" : "蔬菜" , "key" : 1, "children" : [ { "title" : "用户管理" , "key" : 2, "children" : [ { "title" : "用户管理查看" , "key" : 3 }, { "title" : "添加" , "key" : 4 }, { "title" : "修改" , "key" : 5 }, { "title" : "删除" , "key" : 6 } ] } ] }, { "title" : "大米" , "key" : 7, "children" : [ { "title" : "用户管理" , "key" : 8, "children" : [ { "title" : "用户管理查看" , "key" : 9, "children" : [ { "title" : "99用户管理查看" , "key" : 99 }, { "title" : "9添加" , "key" : 911 } ] }, { "title" : "添加" , "key" : 11, "children" : [ { "title" : "11用户管理查看" , "key" : 119 }, { "title" : "添加" , "key" : 1111 } ] } ] } ] } ] let PermissionRootMap = {}; // 建立映射:所有权限对应的根权限的值 const GetPermissionRootMap = () => { console.log( "IN GetPermissionRootMap" ); permissionData.forEach(p1 => { // 注意原始数据为列表,第一次循环,可以获取rootKey;在递归时使用 const rootKey = p1.key; let R = (obj) => { PermissionRootMap[obj.key] = rootKey; let children = obj.children; if (children) { children.forEach(p2 => { R(p2) }); } } R(p1); }); console.log( "ret " , PermissionRootMap); }; GetPermissionRootMap(); </script> |
树形控件 Tree - Ant Design https://ant.design/components/tree-cn/
let PermissionRootMap = {};// 建立映射:所有权限对应的根权限的值
const GetPermissionRootMap = () => {
console.log("IN GetPermissionRootMap");
permissionData.forEach(p1 => {
// 注意原始数据为列表,第一次循环,可以获取rootKey;在递归时使用
const rootKey = p1.key;
let R = (obj) => {
PermissionRootMap[obj.key] = rootKey;
let children = obj.children;
if (children) {
children.forEach(p2 => {
R(p2)
});
}
}
R(p1);
});
console.log("ret ", PermissionRootMap);
};
三级商品类目树
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
2021-02-22 默克尔树 (Merkle Tree)
2021-02-22 高可用的本质 原创 乐羊 阿里技术 2021-02-22
2019-02-22 进栈 出栈 标准用法
2019-02-22 C语言保证,0永远不是有效的数据地址,因此,返回址0可用来表示发生的异常事件
2019-02-22 a
2019-02-22 对内存分配的理解 自动变量 局部变量 临时变量 外部变量 字符串长度 C语言可以看成由一些列的外部对象构成
2017-02-22 css calc()