VagueExplanation VagueExplanation - 1 year ago 83
Javascript Question

Best way to create many branching arrays in JavaScript

I could write shorthand objects, but then I'll have a ton of indents of other arrays and objects inside. This is for a question form with many branching new sets of questions based on the last one anawered. Any suggestions on how this code should be designed?

Answer Source

Other solution with less typing:

var d = {
'':  {/*data*/},
'1': {/*data*/},
'1.1': {/*data*/},
..
'3.2.3.4': {/*data*/}
}
for(var k in d){//build tree structure
  var a = k.split('.')
  var i = a.pop()
  var parent = a.join()
  if(parent in d){//parent exists
    d[parent].children.push({i: +i, k: k})//to prevent holes
  }
  else {
    console.log('pending subtree: ' + k)
  }
}
for(var k in d){//transform child array
  d[k].children = d[k].children
    .sort(function(a,b){return a.i-b.i})
    .map(function(x){return d[x.k]})
}
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download