// 递归-树形数组所有父级节点的id
familyTree(arr) {
var temp = [];
var forFn = function (list) {
for (var i = 0; i < list.length; i++) {
var item = list[i];
if (item.children) {
temp.push(item.id);
forFn(item.children);
}
}
};
forFn(arr);
return temp;
},
},
业务场景中的使用:
比如我调用接口返回一组ID,其中包含了父级节点和子级节点id,但是我只想要子级节点id;
我需要通过查询所有树节点数据并通过递归将其中所有的父级id取出;
在进行筛选去除两个数组中的相同id就得到了只剩子级的id;
SysRoleApi.ownMenu({ id: this.data.id }).then((res) => {
let list1 = this.familyTree(this.authData);
// 去除两个数组中相同的项
let list = res.filter((key) => {
return list1.indexOf(key) === -1;
});
this.checkedKeys = list;
this.commitKeys = res;
});