I want to get the following output
expected output
[
{ name: 'mega-service', amount: [ 15, 22 ] },
{ name: 'somethingElse', amount: [ 12, 112 ] },
{ name: 'sms-alert', amount: [ 22 ] },
]
code i have written
const data = [
{clientServiceName: "mega-service", amount: 15},
{clientServiceName: "somethingElse", amount: 12},
{clientServiceName: "somethingElse", amount: 112},
{clientServiceName: "mega-service", amount: 22},
{clientServiceName: "sms-alert", amount: 22}
]
const result = [];
data.forEach(d => {
if(result.length === 0){
let obj = {
name: d.clientServiceName,
amount: [d.amount]
}
result.push(obj);
}else{
result.forEach(r => {
if(r.name === d.clientServiceName){
r.amount = [...r.amount, d.amount]
// console.log("inside name match")
}else{
let anotherObj = {
name: d.clientServiceName,
amount: [d.amount]
}
result.push(anotherObj);
}
})
}
})
console.log(result)
But i am getting following output
output
[
{ name: 'mega-service', amount: [ 15, 22 ] },
{ name: 'somethingElse', amount: [ 12, 112 ] },
{ name: 'somethingElse', amount: [ 112 ] },
{ name: 'mega-service', amount: [ 22 ] },
{ name: 'mega-service', amount: [ 22 ] },
{ name: 'sms-alert', amount: [ 22 ] },
{ name: 'sms-alert', amount: [ 22 ] },
{ name: 'sms-alert', amount: [ 22 ] },
{ name: 'sms-alert', amount: [ 22 ] },
{ name: 'sms-alert', amount: [ 22 ] }
]
where did i get wrong here to get expected output. please help me to get my expected output