代码如下(示例):
familyExpandTree(arr1, id) {
var temp = [];
var forFn = function (arr, id) {
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
if (item.id === id) {
temp.push(item);
forFn(arr1, item.parentId);
break;
} else {
if (item.children) {
forFn(item.children, id);
}
}
}
};
forFn(arr1, id);
return temp;
},
familyTree(arr1, id) {
var temp = [];
var forFn = function (arr, id) {
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
if (item.label === id) {
temp.push(item);
forFn(arr1, item.parentId);
break;
} else {
if (item.children) {
forFn(item.children, id);
}
}
}
};
forFn(arr1, id);
return temp;
},
举例试用
this.currentSpot = this.familyTree(this.treeData, 2)[0];
//寻找树nodeType===2的第一个节点 查找全部节点不取[0]
familyTree(arr1, id, idName, childrenName) {
var temp = [];
var forFn = function(arr, id) {
for (var i = 0; i < arr.length; i++) {
var item = arr[i];
// console.log("item", item, id, this.idName);
if (item.nodeType === id) {
temp.push(item);
// forFn(arr1, item.parentId);
break;
} else {
if (item.children) {
forFn(item.children, id);
}
}
}
};
forFn(arr1, id);
return temp;
},