childNodes: 子节点 parentNode:当前节点
{
"childNodes":[
{
"childNodes":[
null
],
"parentNode":{
"key":1,
"value":"string"
}
}
],
"parentNode":{
"key":0,
"value":"string"
}
}
通过当前节点的key 怎么递归取到它的父节点
回答
const findPnodeId = function(data, key) {
// 设置结果
let result
if (!data) {
return// 如果data传空,直接返回
}
for (var i = 0; i < data.childNodes.length; i++) {
const item = data.childNodes[i]
if (item.parentNode.key === key) {
result = data.parentNode.key
// 找到id相等的则返回父id
return result
} else if (item.childNodes && item.childNodes.length > 0) {
// 如果有子集,则把子集作为参数重新执行本方法
result = findPnodeId(item, key)
// 关键,千万不要直接return本方法,不然即使没有返回值也会将返回return,导致最外层循环中断,直接返回undefined,要有返回值才return才对
if (result) {
return result
}
}
}
// 如果执行循环中都没有return,则在此return
return result
}
const prnindt = findPnodeId(this.predIds, key)
没太看懂给的数据结构