jeudi 25 décembre 2014

Javascript unlimited category depth tree


I am trying to generate a tree of flat array , placing sub categories next to the parent category and having hard doing same.





var categories = [
{
name: 'Javascript'
},
{
name: 'jQuery',
parent: 'Javascript'
},
{
name: 'AngularUi',
parent: 'Angular'
},
{
name: 'Angular',
parent: 'Javascript'
},
{
name: 'D3',
parent: 'Javascript'
}
];

var tree = [];

function getChilds(array,identifier){
return _.filter(array,function(val){
return val.parent == identifier
});
}

function createTree(array){
for(var x=0;x<_.size(array);x++){
tree.push(array[x].name);
var childs = getChilds(array,array[x].name);
if(_.size(childs) > 0){
createTree(childs);
}else{
$('div').append(JSON.stringify(tree));
}
}
}

createTree(categories);



<script src="http://ift.tt/OMnhxL"></script>
<script src="http://ift.tt/1oMJErh"></script>
<div></div>



Expected Output



['Javascript','Jquery','Angular','AngularUi','D3']


This is what i have tried so far, and using underscore for little help. Any help will be appreciated .





Aucun commentaire:

Enregistrer un commentaire