Creating a JSON Tree from a string hierarchy

后端 未结 3 1794
情深已故
情深已故 2020-12-09 11:16

Given these 4 variables,

var el1 = {name:\'ronaldo\', team: \'europe/spain/realmadrid\'}
var el2 = {name:\'messi\', team: \'europe/spain/barcelona\'}
var el3         


        
3条回答
  •  醉酒成梦
    2020-12-09 12:07

    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];
        }
    }
    

提交回复
热议问题