tree-model-js как получить предыдущий идентификатор узла
Я хотел знать предыдущий посещенный узел из дерева. пытаясь с приведенным ниже примером
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
2 ответа
Решение
Обходя дерево, вы можете получить родителя текущего узла с node.parent
,
rootMain.walk(node => {
console.log('node id:', node.model.id);
if(node.parent) {
console.log('parent node id:', node.parent.model.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;
});