Hi In javascript I have to create object tree from a string as below
“group1:node1:properties,group1:node2:properties,group2:node2:properties,group2:node3:properties,group2:node1:properties,group3:node2:properties”.
In this, properties are also : seperated,
I require object tree as below
group1 node1 properties node2 properties group2 node2 properties node3 properties node1 properties group3 node2 properties
can any body tell me what is the best way to do that with example.
Advertisement
Answer
Although it seems like a school exercise…I think you need to take a look at the split() method. First split on the comma (,), then the colon (:). For example..
Look at this: http://jsfiddle.net/T852c/
var str = 'group1:node1:properties,group1:node2:properties,group2:node2:properties,group2:node3:properties,group2:node1:properties,group3:node2:properties'; var result ={}, groups = str.split(','), groupsCount = groups.length; for(var i=groupsCount; i--;){ var groupStr = groups[i], split = groupStr.split(':'), groupKey = split[0], nodeKey = split[1], properties = split[2], group = result[groupKey] || (result[groupKey] = {}), node = group[nodeKey] || (group[nodeKey] = {}); node[properties] = { foo: 'bar' }; } console.log(result);
It might not be exactly what you are looking for but it might help to get you started. Good luck!