Hi i want to get nested tree structure based on nesting
Something like this
<ul>
<li>Root
<ul>
<li>First level item 1</li>
<li>
First level item 2
<ul>
<li>second level item1</li>
</ul>
</li>
</ul>
</li>
Question: my function is not returning tree structure markup properly.
Note: i don't want to add 1 more loop
Here is what i have tried:
var getTreeStrucureTemplate = dataset => {
var hashTable = Object.create(null), ul = '',li = '';
dataset.forEach(function(aData){
hashTable[aData.id] = {...aData, childNodes: []};
ul = '<ul>';
});
var dataTree = [];
dataset.forEach(aData => {
if(aData.parentId) { hashTable[aData.parentId].childNodes.push(hashTable[aData.id]); ul += '<li>'+aData.name+'</li>';}
else { dataTree.push(hashTable[aData.id]); ul += '</ul><ul>' }
// console.log(ul);
});
//console.log(dataTree);
var treeStructure = ul;
return treeStructure;
};
var list = [
{
"parentId": 0,
"id": 1,
"name": "Root"
},
{
"parentId": 1,
"id": 2,
"name": "First Level item 1"
},
{
"parentId": 1,
"id": 3,
"name": "First Level item 2"
},
{
"parentId": 3,
"id": 4,
"name": "second Level item 1"
}
];
console.log(getTreeStrucureTemplate(list))