我想知道树上以前访问过的节点。 尝试下面的例子
var TreeModel = require('tree-model');
tree = new TreeModel();
rootMain = tree.parse({
id: 1,
children: [
{
id: "11",
children: [{id: "111"}]
},
{
id: "12",
children: [{id: "121"}, {id: "122"}]
},
{
id: "13"
}
]
});
如果假设我遍历到节点121和122,我想要父节点,那么它应该返回12 如果假设我遍历到节点111,我想要父节点,那么它应该返回11 如果假设我遍历到节点13,我想要父节点,那么它应该返回1
答案 0 :(得分:1)
在遍历树时,您可以使用node.parent
获取当前节点的父节点。
rootMain.walk(node => {
console.log('node id:', node.model.id);
if(node.parent) {
console.log('parent node id:', node.parent.model.id);
}
});
答案 1 :(得分:0)
这会记录所需的父ID
var parent_id;
rootMain.walk(function (node) {
var current_id = node.model.id;
if (node.model.id === 121)
console.log(parent_id);
return true;
parent_id = current_id;
});