如何获取当前角色所拥有权限的id
1.递归实现:
getCheckedRightsIds(node,arr) {
//当前node没有children,意味着node没有子级,则将当前node的id保存到数组中
if(!node.children) {
return arr.push(node.id)
}
//如果node含有children,则用递用调用getCheckedRightsIds函数
node.children.forEach(subnode=>this.getCheckedRightsIds(subnode,arr))
}
2.不用递归:
//封装一个提取树形结构的数据id的方法
export function getTreeIds(tree) {
//存放id的数组
let resultArr = [];
//存放当前要处理的权限数组
let tempArr = [];
tempArr = tempArr.concat(JSON.parse(JSON.stringify(tree)));
while (tempArr.length) {
let node = tempArr.shift();
if (node.children) {
tempArr = tempArr.concat(node.children);
delete node["children"];
} else {
resultArr.push(node.id);
}
}
return resultArr;
}