Hi FE !
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
Ai
git
前端面试题
前端小tip
  • vite
  • webpack
npm
  • vue2
  • vue3
react
GitHub
  • 删除树结构中无用的节点

删除树结构中无用的节点

写法1


/**
 * @description 使用递归处理路由菜单,生成一维数组,做菜单权限判断
 * @param {Array} menuList 所有菜单列表
 * @param {Array} newArr 菜单的一维数组['/home','/list']
 * @return array
 */

// 过滤树节点
export function filterRouter(routerList: Menu.MenuOptions[], newArr: string[] = []) {
  let resultList = [];
  for (let i = 0; i < routerList.length; i++) {
    let item = routerList[i];
    if (newArr.indexOf(item.path) == -1) {
      routerList.splice(i--, 1);
    } else {
      if (item.children) {
        item.children = filterRouter(item.children, newArr);
      }
      resultList.push(item);
    }
  }
  return resultList;
}

写法2

 // 过滤树节点
   const assemble = (tree) =>  {
        var newArr = [];
        for (var i = 0; i < tree.length; i++){
            var item = tree[i];
            if(item.type === 'test') {
                tree.splice(i--, 1); 
            } else {
                if (item.childNodes) {
                    item.childNodes = assemble(item.childNodes);
                }
                newArr.push(item);
            }
        }
        return newArr;
    },

Edit this page
最近更新: 2025/6/27 02:24
Contributors: qdleader
qdleader
本站总访问量 129823次 | 本站访客数 12人