JSFiddle - React, Tailwind, and code Playground
by Ankit Kanojia
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
JavaScript
const o={
"title": "Men",
"url": "/products",
"id": 2,
"orderno": 2,
"parentid": 0,
"submenu": [
{
"title": "Casual",
"url": "/products",
"id": 1,
"orderno": 0,
"parentid": 2
},
{
"title": "Sports",
"url": "/products",
"id": 2,
"orderno": 0,
"parentid": 2,
"submenu": [
{
"title": "Formal",
"url": "/products",
"id": 3,
"orderno": 0,
"parentid": 2
},
{
"title": "Standard",
"url": "/products",
"id": 4,
"orderno": 0,
"parentid": 2
}]
}]
};
var temparray=[];
var buildTree = function(tree) {
_.each(tree, function(item) {
//console.log(item);
temparray.push(item);
if(item.submenu) buildTree(item.submenu);
});
}
function getParentValue(data, idtofind,previd,titleArray) {
var obj = data.filter(item=>item.id===idtofind);
obj.map(objitem=>{
if(objitem.submenu){
titleArray.push(objitem.title);
if(objitem.submenu.some(a=>a.id===previd))
{
titleArray.push(objitem.title)
getParentValue(data,objitem.parentid,idtofind,titleArray)
}
}
else
{
titleArray.push(objitem.title);
getParentValue(data,objitem.parentid,idtofind,titleArray)
}
})
}
var getParent = ()=>{
var objArr=[];
var parentTitleArray=[];
objArr.push(o);
buildTree(objArr);
getParentValue(temparray,3,3,parentTitleArray)
console.log([...new Set(parentTitleArray)]);
}
getParent();