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

发布时间 2023-09-17 22:30:09作者: news_one

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;
}