##树形结构,找出其父节点
let data = [
{
data: 1,
children: [
{
data: 2,
children: [
{
data: 3,
children: []
}
]
}
]
},
{
data: 7,
children: [
{
data: 8,
children: [
{
data: 9,
children: []
},
{
data: 10,
children: []
}
]
}
]
}
]
//递归方式
function find(data, item, p) {
for (let i = 0; i < data.length; i++) {
const e = data[i];
if (item === e.data) {
return p
}
if (e.children.length) {
const res = find(e.children, item, e)
if(res) return res
}
}
}
find(data, 8,p = data)
//第二种
function findParent(tree, data) {
let trees = JSON.parse(JSON.stringify(tree))
let parentList = trees.map(() => trees)
for (let i = 0; i < trees.length; i++) {
const e = trees[i];
if (data === e.title) {
return parentList[i]
}
if (e.children) {
trees = trees.concat(e.children)
e.children.map(() => {
parentList.push(e)
})
}
}
}