I have a flat array and I want to build a tree array in node.js. The array I have is like:
var data= [
{
"id1": 1001,
"id2": 1002,
"id3": 1004,
"id4": 1007,
"id5": 1013,
"id6": 1030,
"id7": null,
"id8": null,
"id9": null,
"accountid": 1108,
"name1": "Net Income",
"name2": "Net Income Before Extraordinary Item",
"name3": "Income (Loss) from operations ",
"name4": "Net Patient Revenue",
"name5": "Gross Patient Revenue",
"name6": "Inpatient Routine Services",
"name7": null,
"name8": null,
"name9": null,
"accountname": "3000000 - INPATIENT REVENUE ",
"amt1": 6266235,
"amt2": 0,
"amt3": 7085312,
"amt4": 7010901,
"amt5": 7008743,
"amt6": 6865373,
"amt7": 7298176,
"amt8": 7481711,
"nCurMnth": 0,
"samt4": 7010901,
"id": 1030,
"parentid": 1013,
"relativelevel": 6,
"accountdetailid": null,
"variancecalc": 1,
"InfoSetID": 1108,
"InfoSetName": "3000000 - INPATIENT REVENUE ",
"DetailType": "",
"DecimalCount": 2
},
{
"id1": 1001,
"id2": 1002,
"id3": 1004,
"id4": 1007,
"id5": 1013,
"id6": 1030,
"id7": null,
"id8": null,
"id9": null,
"accountid": 2708,
"name1": "Net Income",
"name2": "Net Income Before Extraordinary Item",
"name3": "Income (Loss) from operations ",
"name4": "Net Patient Revenue",
"name5": "Gross Patient Revenue",
"name6": "Inpatient Routine Services",
"name7": null,
"name8": null,
"name9": null,
"accountname": "3000090 - INPATIENT SWING BED ",
"amt1": 190887,
"amt2": 0,
"amt3": 256581,
"amt4": 271789,
"amt5": 235998,
"amt6": 251224,
"amt7": 307154,
"amt8": 314971,
"nCurMnth": 0,
"samt4": 271789,
"id": 1030,
"parentid": 1013,
"relativelevel": 6,
"accountdetailid": null,
"variancecalc": 1,
"InfoSetID": 2708,
"InfoSetName": "3000090 - INPATIENT SWING BED ",
"DetailType": "",
"DecimalCount": 2
},
{
"id1": 1001,
"id2": 1002,
"id3": 1004,
"id4": 1007,
"id5": 1013,
"id6": 1030,
"id7": null,
"id8": null,
"id9": null,
"accountid": 1114,
"name1": "Net Income",
"name2": "Net Income Before Extraordinary Item",
"name3": "Income (Loss) from operations ",
"name4": "Net Patient Revenue",
"name5": "Gross Patient Revenue",
"name6": "Inpatient Routine Services",
"name7": null,
"name8": null,
"name9": null,
"accountname": "3999000 - SUSPENSE DAILY REV CLEAR ACCT ",
"amt1": 0,
"amt2": 0,
"amt3": 0,
"amt4": 0,
"amt5": 0,
"amt6": 0,
"amt7": 0,
"amt8": 0,
"nCurMnth": 0,
"samt4": 0,
"id": 1030,
"parentid": 1013,
"relativelevel": 6,
"accountdetailid": null,
"variancecalc": 1,
"InfoSetID": 1114,
"InfoSetName": "3999000 - SUSPENSE DAILY REV CLEAR ACCT ",
"DetailType": "",
"DecimalCount": 2
},
{
"id1": 1001,
"id2": 1002,
"id3": 1004,
"id4": 1007,
"id5": 1013,
"id6": 1031,
"id7": null,
"id8": null,
"id9": null,
"accountid": 1133,
"name1": "Net Income",
"name2": "Net Income Before Extraordinary Item",
"name3": "Income (Loss) from operations ",
"name4": "Net Patient Revenue",
"name5": "Gross Patient Revenue",
"name6": "Inpatient Ancillary Services",
"name7": null,
"name8": null,
"name9": null,
"accountname": "3070000 - INTERP - INP ",
"amt1": 36886,
"amt2": 0,
"amt3": 47968,
"amt4": 45109,
"amt5": 38047,
"amt6": 39158,
"amt7": 31290,
"amt8": 45148,
"nCurMnth": 0,
"samt4": 45109,
"id": 1031,
"parentid": 1013,
"relativelevel": 6,
"accountdetailid": null,
"variancecalc": 1,
"InfoSetID": 1133,
"InfoSetName": "3070000 - INTERP - INP ",
"DetailType": "",
"DecimalCount": 2
},
{
"id1": 1001,
"id2": 1002,
"id3": 1004,
"id4": 1007,
"id5": 1013,
"id6": 1031,
"id7": null,
"id8": null,
"id9": null,
"accountid": 1135,
"name1": "Net Income",
"name2": "Net Income Before Extraordinary Item",
"name3": "Income (Loss) from operations ",
"name4": "Net Patient Revenue",
"name5": "Gross Patient Revenue",
"name6": "Inpatient Ancillary Services",
"name7": null,
"name8": null,
"name9": null,
"accountname": "3100000 - INPATIENT ANCILLARY REV ",
"amt1": 18822593,
"amt2": 0,
"amt3": 21676463,
"amt4": 21368866,
"amt5": 20284449,
"amt6": 21344632,
"amt7": 20272660,
"amt8": 21169123,
"nCurMnth": 0,
"samt4": 21368866,
"id": 1031,
"parentid": 1013,
"relativelevel": 6,
"accountdetailid": null,
"variancecalc": 1,
"InfoSetID": 1135,
"InfoSetName": "3100000 - INPATIENT ANCILLARY REV ",
"DetailType": "",
"DecimalCount": 2
},
{
"id1": 1001,
"id2": 1002,
"id3": 1004,
"id4": 1007,
"id5": 1013,
"id6": 1031,
"id7": null,
"id8": null,
"id9": null,
"accountid": 1273,
"name1": "Net Income",
"name2": "Net Income Before Extraordinary Item",
"name3": "Income (Loss) from operations ",
"name4": "Net Patient Revenue",
"name5": "Gross Patient Revenue",
"name6": "Inpatient Ancillary Services",
"name7": null,
"name8": null,
"name9": null,
"accountname": "3100090 - SWING BED INPATIENT REV ",
"amt1": 166993,
"amt2": 0,
"amt3": 225651,
"amt4": 228349,
"amt5": 143726,
"amt6": 227736,
"amt7": 235705,
"amt8": 206381,
"nCurMnth": 0,
"samt4": 228349,
"id": 1031,
"parentid": 1013,
"relativelevel": 6,
"accountdetailid": null,
"variancecalc": 1,
"InfoSetID": 1273,
"InfoSetName": "3100090 - SWING BED INPATIENT REV ",
"DetailType": "",
"DecimalCount": 2
}
]
NOTE:- id1 is the root and its name is represented by name1, id2 is the immediate child of id1 and its name is name2, similarly id3 is the immediate child of id2 and its name is name3 and so on.
Now I want a hierarchical (tree like) structure represented by names in node.js.
I would also like to know if there is any package which can do this.
Thanks in advance.
Expected output in tree form is like:
Net Income
|
---------Net Income Before Extraordinary Item
|
------Income (Loss) from operations
| |
| ------Net Patient Revenue
| |
| ---------
------XYZ
[{ "Net income": 36886, "Net income before etc": 0, ... }, { "Net income": 18822593, ... }, ...]. If not, could you edit your question and add an example of the results you want? - David González