const aTree = [{
"Group": "GroupName1",
"Act": "100",
"Work": "Work1",
"Pname": "Name1",
"Pvalue": "Value1",
"Pcount": "10"
},
{
"Group": "GroupName1",
"Act": "100",
"Work": "Work1",
"Pname": "Name2",
"Pvalue": "Value2",
"Pcount": "20"
},
{
"Group": "GroupName1",
"Act": "100",
"Work": "Work1",
"Pname": "Name3",
"Pvalue": "Value3",
"Pcount": "10"
},
{
"Group": "GroupName1",
"Act": "400",
"Work": "Work2",
"Pname": "Name4",
"Pvalue": "Value4",
"Pcount": "2"
},
{
"Group": "GroupName1",
"Act": "400",
"Work": "Work2",
"Pname": "Name5",
"Pvalue": "Value5",
"Pcount": "5"
},
{
"Group": "GroupName2",
"Act": "200",
"Work": "Work1",
"Pname": "Name6",
"Pvalue": "Value6",
"Pcount": "2"
},
{
"Group": "GroupName2",
"Act": "200",
"Work": "Work1",
"Pname": "Name7",
"Pvalue": "Value7",
"Pcount": "14"
},
{
"Group": "GroupName2",
"Act": "200",
"Work": "Work1",
"Pname": "Name8",
"Pvalue": "Value8",
"Pcount": "20"
},
{
"Group": "GroupName2",
"Act": "200",
"Work": "Work2",
"Pname": "Name9",
"Pvalue": "Value9",
"Pcount": "18"
},
{
"Group": "GroupName3",
"Act": "200",
"Work": "Work2",
"Pname": "Name10",
"Pvalue": "Value10",
"Pcount": "15"
},
{
"Group": "GroupName3",
"Act": "300",
"Work": "Work1",
"Pname": "Name11",
"Pvalue": "Value11",
"Pcount": "20"
},
{
"Group": "GroupName3",
"Act": "300",
"Work": "Work2",
"Pname": "Name12",
"Pvalue": "Value12",
"Pcount": "10"
},
]
var aTree1 = [];
aTree.forEach(function(a) {
if (!this[a.Group]) {
this[a.Group] = {
Tree: {
GroupName: [{
Group: a.Group,
Activity: [{
Act: a.Act,
WorkName: [{
Work: a.Work,
Planning: [{
Qyan1: a.Pname,
Quan2: a.Pvalue,
Quan3: a.Pcount
}]
}]
}]
}],
}
};
aTree1.push(this[a.Group]);
}
}, Object.create(null));
console.log(aTree1);
I want the tree structure like below,
[
[
"GroupName1",
[
[
100,
[
1,
"foo"
],
[
2,
"bar"
]
],
[... 400 missing]
]
],
[
"GroupName2",
[
[
200,
[
1,
"foo"
],
[
2,
"bar"
]
]
]
],
[
"GroupName3",
[
[
200,
[
1,
"foo"
],
[
2,
"bar"
]
],
[...300 missing]
]
]
]
[
[
"Group":"GroupName1",
[
[
"Act": "100",
[
"PName": "1",
"PValue": "foo"
],
[
"PName": 2,
"PValue":"bar"
]
],
[... 400 missing]
]
],
[
"Group":"GroupName2",
[
[
"Act":200,
[
"PName": 1,
"PValue":"foo"
],
[
"PName": 2,
"PValue":"bar"
]
]
]
],
[
"Group":"GroupName3",
[
[
"Act":200,
[
"PName": 1,
"PValue":"foo"
],
[
"PName": 2,
"PValue":"bar"
]
],
[...300 missing]
]
]
]