I have an array which has different level of approvers. I need to combine the object of similar level and group them with the Name+counter.
"APPROVERS": [
{
"LEVEL": "L5",
"EMAIL": "FTEST@TEST.COM",
"FULLNAME": "FNAME",
"POSITION": "FPOS",
"SLA": "48",
"STATUS": "INITIAL"
},
{
"LEVEL": "L4",
"EMAIL": "JTEST@TEST.COM",
"FULLNAME": "JNAME",
"POSITION": "JPOS",
"SLA": "48",
"STATUS": "INITIAL"
},
{
"LEVEL": "L5",
"EMAIL": "LTEST@TEST.COM",
"FULLNAME": "LNAME",
"POSITION": "GPOS",
"SLA": "48",
"STATUS": "INITIAL"
},
{
"LEVEL": "L5",
"EMAIL": "TTEST@TEST.COM",
"FULLNAME": "TNAME",
"POSITION": "CPOS",
"SLA": "48",
"STATUS": "INITIAL"
}
]
I need to combine the objects of same level into one and provide the unique name.
"APPROVERS": [
{
"LEVEL": "L5",
"EMAIL1": "FTEST@TEST.COM",
"FULLNAME1": "FNAME",
"POSITION1": "FPOS",
"SLA1": "48",
"STATUS1": "INITIAL",
"EMAIL2": "LTEST@TEST.COM",
"FULLNAME2": "LNAME",
"POSITION2": "GPOS",
"SLA2": "48",
"STATUS2": "INITIAL",
"EMAIL3": "TTEST@TEST.COM",
"FULLNAME3": "TNAME",
"POSITION3": "CPOS",
"SLA3": "48",
"STATUS3": "INITIAL"
},
{
"LEVEL": "L4",
"EMAIL": "JTEST@TEST.COM",
"FULLNAME": "JNAME",
"POSITION": "JPOS",
"SLA": "48",
"STATUS": "INITIAL"
}
]
I tried only to combine EMAIL by looping the array but not able to achieve the result.Kindly suggest.
var result = [];
var i=0
APPROVERS.forEach(function(obj) {
var id = obj.LEVEL
if(!this[id]) result.push(this[id] = obj);
else this[id].EMAIL += obj.EMAIL+i;
i++;
}, Object.create(null));
console.log(result)