Given these 4 variables,
var el1 = {name:\'ronaldo\', team: \'europe/spain/realmadrid\'}
var el2 = {name:\'messi\', team: \'europe/spain/barcelona\'}
var el3
in case you agree to have children as object/hash instead of array, here is my solution based on Jordan's https://stackoverflow.com/a/2299268/214420
var el1 = {name:'ronaldo', team: 'europe/spain/realmadrid'}
var el2 = {name:'messi', team: 'europe/spain/barcelona'}
var el3 = {name:'gerald', team: 'europe/england/liverpool'}
var el4 = {name:'unknown english', team: 'europe/england'}
data = [el1,el2,el3,el4]
tree = {};
for(var i =0; i < data.length;i++){
var steps = data[i].team.split('/');
steps.push(data[i].name)
var current = tree;
for(var j = 0 ; j < steps.length;j++){
var step = steps[j]
current.leaf = false;
current.children = current.children || {};
current = current.children
current[step] = current[step] || {text:step,leaf:true}
current = current[step];
}
}