var treeDataOld = [
{id: '1', pId: '', name: 'root1', checked: false},
{id: '2', pId: '', name: 'root2', checked: false},
{id: '3', pId: '', name: 'root3', checked: true},
{id: '4', pId: '1', name: 'child', checked: true},
{id: '5', pId: '4', name: 'child', checked: false},
{id: '6', pId: '5', name: 'child', checked: false},
{id: '7', pId: '6', name: 'child', checked: false},
{id: '8', pId: '7', name: 'child', checked: true},
{id: '9', pId: '8', name: 'child', checked: false},
];
function findRoot(node) {
var getParentNode = function (node, refArray) {
var len = refArray.length;
for (var i = 0; i < len; i++) {
if (refArray[i].id === node) {
return refArray[i];
}
}
};
if (node.pId !== '') {
findRoot(getParentNode(node.pId, treeDataOld));
} else {
console.log(node); // I got OBJECT here
return node;
}
}
var rootNode = findRoot(treeDataOld[8]);
console.log(rootNode); // here is UNDEFINED
I want to find the root node by giving a parent node. I got correct result at first console inside function findRoot before return. But the console outside the function get UNDEFINED.