1.定义递归函数
bqchangedetselect(key, treedata) {
let arr = []; // 在递归时操作的数组
let returnarr = []; // 存放结果的数组
let depth = 0; // 定义全局层级
let bj = 0;
// 定义递归函数
function childreneach(childrendata, depthn) {
for (var j = 0; j < childrendata.length; j++) {
if (bj == 0) {
// console.log("--------tree反显--------")
depth = depthn; // 将执行的层级赋值 到 全局层级
arr[depth] = (childrendata[j].value);
// console.log(arr)
// console.log(childrendata[j])
if (childrendata[j].value== key) {
returnarr = arr.slice(0, depthn + 1); //将目前匹配的数组,截断并保存到结果数组,
// console.log("--------tree获取正确值--------")
bj = 1
break;
} else {
if (childrendata[j].children) {
depth++;
childreneach(childrendata[j].children, depth);
}
}
} else {
break;
}
}
// console.log("--------tree反显结束--------")
return returnarr;
}
// console.log("--------tree递归结束--------")
return childreneach(treedata, depth);
},
2.调用递归函数
//this.datalist为级联选择器数组
//newarr 为最终输出的结果
let list = []
list.push(this.value)//码值放入数组
const newarr = this.bqchangedetselect(list , this.datalist)