Tuesday, 10 May 2016

Get Tree structure data from Array using JQuery :

// json data
var data = [
{
"name": "root",
"parent": 0,
"id": "root",
},
{
"name": "a1",
"parent": "root",
"id": "a1",
},
{
"name": "a2",
"parent": "a1",
"id": "a2",
},
{
"name": "a3",
"parent": "a2",
"id": "a3",
},
{
"name": "b1",
"parent": "root",
"id": "b1",
},
{
"name": "b2",
"parent": "b1",
"id": "b2",
},
{
"name": "b3",
"parent": "b1",
"id": "b3",
}
];

/**
 * get tree structure data
 * @author Nilav Patel
 * @param   {array}  data      -json data
 * @param   {string} id        -id field property name
 * @param   {string} parent    -parent field property name
 * @param   {object} rootValue -value of root
 * @returns {array}  -array with tree structure
 */
function getTreeStructure (data, id, parent, rootValue) {

var idToNodeMap = {};
var root = null;

for (var i = 0, datum; node = data[i]; i++) {
node.children = [];
idToNodeMap[node[id]] = node;
if (node[parent] === rootValue) {
root = node;
}
   else {
parentNode = idToNodeMap[node[parent]];
parentNode.children.push(node);
}
}
return root;
}

var result = getTreeStructure(data, "id", "parent", 0);
console.log(result);

No comments:

Post a Comment

Parent-Child class declaration and initialization

using System; namespace CSharpDemo {     public class A     {         public void print()         {             Console.Wr...