JavaScript
var data = getData();
var group = _.groupBy(data, 'parent');
console.log(group);
function getData() {
return {
"1": {
"id": 1,
"name": "foo",
"parent": null,
"root": 1,
"children": [2, 4, 6],
"items":[
{ "id": "1", "name": "item1" },
{ "id": "2", "name": "item2" },
{ "id": "3", "name": "item3" }
]
},
"2": {
"id": 2,
"name": "bar",
"parent": 1,
"root": 1,
"children": null,
"items":[
{ "id": "4", "name": "item4" }
]
},
"3": {
"id": 3,
"name": "bazz",
"parent": null,
"root": 3,
"children": [5, 7],
"items":[
{ "id": "5", "name": "item5" },
{ "id": "6", "name": "item6" }
]
},
"4": {
"id": 4,
"name": "zap",
"parent": 1,
"root": 1,
"children": [9],
"items":[
{ "id": "7", "name": "item7" },
{ "id": "8", "name": "item8" },
{ "id": "9", "name": "item9" },
{ "id": "10", "name": "item10" }
]
},
"5": {
"id": 5,
"name": "lel",
"parent": 3,
"root": 1,
"children": null,
"items":[]
},
"6": {
"id": 6,
"name": "pop",
"parent": 1,
"root": 1,
"children": null,
"items":[
{ "id": "11", "name": "item11" },
{ "id": "12", "name": "item12" }
]
},
"7": {
"id": 7,
"name": "jiz",
"parent": 3,
"root": 3,
"children": null,
"items":[]
...