一、场景
描述:在使用ant-design-vue的树选择组件(TreeSelect
)时,因为后端兄弟的要求,需要获取到选中节点的所有父节点,并通过数组的形式返回选中节点和该节点的各级父节点
二、实现
/**
* @description:
* @param {*} tree 树
* @param {*} menuid 选择的节点
* @return {*}
*/
treeFindPath(tree, menuid) {
var path = [];
if (!tree) return [];
var forFn = function (tree, menuid) {
for (var i = 0; i < tree.length; i++) {
// 存放最后返回的内容,返回text集合
var data = tree[i];
path.push(data.key);
if (data.key === menuid) return path;
if (data.children) {
const findChildren = forFn(data.children, menuid);
if (findChildren) return findChildren;
}
path.pop();
}
};
forFn(tree, menuid);
return path;
},