/**
* @param tree {Array} 树数据
* @param func {Function} 回调函数
* @param field {String} 字段名称
* @param path {Array} 路径数据
* @returns {*[]|[]|*}
*/
treeFindPath(tree, func, field = "", path = []) {
if (!tree) return []
for (const data of tree) {
field === "" ? path.push(data) : path.push(data.id);
if (func(data)) return path
if (data.childList) {
const findChildren = this.treeFindPath(data.childList, func, field, path)
if (findChildren.length) return findChildren
}
path.pop()
}
return []
}
使用:
let arr = this.treeFindPath(this.treeData, data => data.id === this.toGroupId, "text");
console.log(arr)
// [232, 278, 301]