const getParentKey = (key, tree) => {
let parentKey;
for (let i = 0; i < tree.length; i++) {
const node = tree[i];
// 判断是不是顶级父
if (node.key == key) {
return node.key;
}
if (node.children) {
if (node.children.some((item) => item.key === key)) {
parentKey = node.key;
} else if (getParentKey(key, node.children)) { // 必须判断是否有返回值
parentKey = getParentKey(key, node.children);
}
}
}
return parentKey;
};
var tree = [
{
key: "a",
value: "1",
children: [
{ key: "b", value: "2" },
{ key: "c", value: "3", children: [{ key: "d", value: "4" }] },
],
},
{
key: "a1",
value: "11",
children: [
{ key: "b1", value: "21" },
{ key: "c1", value: "31", children: [{ key: "d1", value: "41" }] },
],
},
];
console.log(getParentKey("d1", tree)); //"c1"
getParentKey3("a",tree); //"a"
getParentKey3("d",tree); //"c"