js-树形结构根据子类id获取到最父级对应id
数据结构:
根据后代子key,匹配到对应最父级key;
处理后的后辈集合:
getParentKey() {
let parentKey = "";
let folderId = form.folderId;//当前子id
let formFolders = formFolders;//树数据
let list = [];
let parentsKeys = [];
// 把顶级+子级都整合起来;
let fn1 = (arr, childIds) => {
childIds.push(arr.key);
if (!arr.isLeaf && arr.children) {
arr.children.forEach((item) => {
fn1(item, childIds);
})
} else {
return childIds;
}
return childIds;
}
for (let i in formFolders) {
let obj = {
id: formFolders[i].key,
childIds:[],
}
let childIdDatas = fn1(formFolders[i], obj["childIds"]);
obj["childIds"] = childIdDatas;
parentsKeys.push(obj);
};
parentsKeys.forEach((item, index)=>{
if (item.childIds.includes(folderId)) {
parentKey = item.id;
return;
}
})
return parentKey
}