js树状数据结构,查询上一层 某个字段

js树状数据结构,查询上一层 某个字段

怎么根据当前id查找父级对象比如南京id:101,找到江苏这个对象,谢谢各位老哥

 [

{

id:1,

pid:0

nama:'中国',

children:[

{

id:5,

pid:1

nama:'江苏',

children:[

{

id:101,

pid:5

nama:'南京',

}

]

}

]

}

]


回答:

const findParent = (data, id) => {

const helper = (node, origin) => {

if (node.id === id) return origin === dummyRoot ? null : origin;

const children = node.children ?? [];

for (const neighbor of children) {

const ans = helper(neighbor, node);

if (ans) return ans;

}

return null;

};

const dummyRoot = { children: data };

return helper(dummyRoot, null);

};

console.log(findParent(data, 101));

console.log(findParent(data, 5));

console.log(findParent(data, 1));

console.log(findParent(data, 7));


回答:

可以获取目标id的父级树上所有的id:

getIds(data, 101);

function getIds(data, id) {

let tArr = [];

loop(data);

return tArr;

function loop(arr) {

return arr.some((n) => {

if (n.id === id) {

tArr.push(n.id);

return true;

}

const child = n.children || [];

if (child && child.length > 0) {

tArr.push(n.id);

if (loop(child)) return true;

tArr.unshift();

}

return false;

}, [])

}

}

以上是 js树状数据结构,查询上一层 某个字段 的全部内容, 来源链接: utcz.com/p/935577.html

回到顶部