i want to add additional wrapper after group by in efficient way
i tried with for each group by, but it created each array item with title based on group value
What want is additional unique wrapper for each group with title as group title and records as actual group item
the expected output i have shown below
const records = [{
"id": "po_20",
"name": "po_20",
"searchtype": "purchaseorders"
},
{
"id": "po_10",
"name": "po_10",
"searchtype": "purchaseorders"
},
{
"id": "po_8",
"name": "po_8",
"searchtype": "purchaseorders"
},
{
"id": "po_3",
"name": "po_3",
"searchtype": "purchaseorders"
},
{
"id": "po_17",
"name": "po_17",
"searchtype": "purchaseorders"
},
{
"id": "s1",
"name": "s1",
"searchtype": "sale"
},
{
"id": "s2",
"name": "s2",
"searchtype": "sale"
},
{
"id": "s3",
"name": "s3",
"searchtype": "sale"
}
];
var groups2 = [];
records.forEach(function(item) {
var list = groups2[item.searchtype];
if (list) {
list.push(item);
} else {
groups2[item.searchtype] = [item];
//groups2[title] = [item.group];
}
});
console.log(groups2);
var groups3 = [];
groups2.forEach(function(item) {
console.log("Time");
var jui = [];
jui[title] = item[0].searchtype;
jui[records ] = item;
groups3.push(jui);
});
console.log(groups3);
I expect the object to be
const records = [{
title: 'purchaseorders',
records: [{
"id": "po_20",
"name": "po_20",
"searchtype": "purchaseorders"
},
{
"id": "po_10",
"name": "po_10",
"searchtype": "purchaseorders"
},
{
"id": "po_8",
"name": "po_8",
"searchtype": "purchaseorders"
},
{
"id": "po_3",
"name": "po_3",
"searchtype": "purchaseorders"
},
{
"id": "po_17",
"name": "po_17",
"searchtype": "purchaseorders"
}
]
},
{
title: 'sales',
records: [{
"id": "s1",
"name": "s1",
"searchtype": "sales"
},
{
"id": "s2",
"name": "s2",
"searchtype": "sales"
},
{
"id": "s3",
"name": "s3",
"searchtype": "sales"
}
]
}
];