JSFiddle - React, Tailwind, and code Playground
JavaScript
function getParentsHelper(tree, id, parents) {
if (tree.opts._id == id) {
return {
found: true,
parents: parents
};
}
var result = {
found: false,
}
if (tree.children) {
$.each(tree.children, function(index, subtree) {
var maybeParents = $.merge([], parents);
if (tree.opts._id != undefined) {
maybeParents.push(tree.opts._id);
}
var maybeResult = getParentsHelper(subtree, id, maybeParents);
if (maybeResult.found) {
result = maybeResult;
return false;
}
});
}
return result;
}
function getParents(data, id) {
var tree = {
opts: { },
children: data
}
return getParentsHelper(tree, id, []);
}