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();