首页 > 其他分享 >遍历菜单树得到所有菜单ids

遍历菜单树得到所有菜单ids

时间:2023-09-17 22:47:53浏览次数:52  
标签:menuTree 遍历 所有 ids item 菜单 id

1、前言

在我们实现菜单管理页面的时候,有时候我们需要默认展开所有的菜单列表,但是因为后端有时候没有返回所有菜单ids数组。
而且我们也不容易获取到所有菜单ids,比如如果我们通过角色id查询到所有菜单ids数组,但是如果这个角色后面有一个菜单给它不关联了怎么办?如果说后面这个角色删除了怎么办?这样就不能通过角色id查询到所有的ids数组。

2、代码实现

util.js

//返回菜单树中所有的菜单ids
export function getAllMenuIds(menuTree, ids = []) {
  for (let i = 0; i < menuTree.length; i++) {
    const item = menuTree[i];
    ids.push(item.id);
    if (item.children && item.children.length > 0) {
      getAllMenuIds(item.children, ids);
    }
  }
  return ids;
}

标签:menuTree,遍历,所有,ids,item,菜单,id
From: https://www.cnblogs.com/new-one/p/17709982.html

相关文章

  • 关于 Spartacus My Account 菜单的数据源 - NavigationNode
    有朋友询问Spartacus的MyAccount菜单里,Mycompany菜单项的数据源是什么?Spartacus启动时,我们观察到这个OCCAPI:/occ/v2/powertools-spa/cms/pages?lang=en&curr=USD在其响应数据里,观察到navigationnode里包含了一个叫做MyCompany的菜单项:Backoffice是SAPCom......
  • leetcode 加油站——一次遍历
     classSolution:defcanCompleteCircuit(self,gas:List[int],cost:List[int])->int:n=len(gas)max_gas=0rest=0records=[]start=0foriinrange(n):tmp=gas[i]-cost[i]re......
  • 多叉树应用 包括构建 dfs遍历
    力扣17.电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。示例1:输入:digits="23"输出:["ad","ae","af","bd","be","bf","cd","ce&quo......
  • fastadmin命令生成通用代码及菜单
    1.确认数据表结构(引用文档相关规则,不适用的额外处理)2.生成通用代码及菜单phpthinkcrud-t表名(user_log)-r引用表名(user)-k引用表关联键(user_id)-p引用表主键(id)-u13.生成菜单关联操作(增删改查操作,用于权限分配)phpthinkmenu-c表名(user_log)......
  • window11恢复右键展示完整菜单
    //终端->右键管理员身份运行regadd"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32"/f/ve(附[恢复window11右键模式]:regdelete"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32......
  • 二叉树的遍历
    总结深度优先与广度优先的区别1、区别1)二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归的通用做法是采用队列。2)深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。要特别注意的是,二叉树的深度优先遍历比较特殊,可以......
  • 趣解设计模式之《小店儿菜单的故事》
    〇、小故事在一座小镇上,有两家特别有名气的小店,一家是远近闻名的早餐店,它家的早餐特别好吃,每天早上都能排起长长的队伍;另一家是个蛋糕店,他家是专门从法国请来的蛋糕师傅,蛋糕的香味真是香飘万里。自从听说这个酱香拿铁销量非常高之后,这两家店的老板们就觉得强强联合才是能让小店更......
  • Java数组遍历
    publicclassbianli{publicstaticvoidmain(String[]args){int[]arr={11,22,33,44,55};printArray(arr);}publicstaticvoidprintArray(int[]arr){System.out.print("[");......
  • 给指定类型的文件添加右键菜单
    在Windows10中,编辑注册表,修改指定的文件类型下的shell项,发现对特定文件类型的右键没有添加菜单。经过查询,需要使用AppliesTo语法,如下图这样就可以只在sql文件中显示这个右键菜单,其他类型的文件点击右键,不显示这个自定义菜单。如下图Windows文档:https://learn.micro......
  • print()不带逗号、括号输出列表内容(不使用遍历)
    假设有一个列表li=[1,4,6,7,2,5]1、直接输出列表print(li)[1,4,6,7,2,5]2、增加*可以不带逗号、括号输出列表元素print(*li)1467253、还可以使用sep参数自定义每个元素之间的间隔符print(*li,sep='#')1#4#6#7#2#5 ......