-6

I want add add some properties to array of objects after getting count.

const data = [ 
{ id:4, name:'sam',stats:[{id:1, partnerId:4, applicatiions:4, drafts:5},{id:2, partnerId:4, applicatiions:1, drafts:2}]},
{ id:5, name:'kam',stats:[{id:1, partnerId:5, applicatiions:2, drafts:3}]},
{ id:6, name:'jam',stats:[]},
{ id:7, name:'ram',stats:[{id:1, partnerId:7, applicatiions:9, drafts:5},{id:2, partnerId:7, applicatiions:2, drafts:5}]}
]

result should be :

[ 
{ id: 4, name:'sam', applicatiions:5, drafts:7}, 
{ id: 5, name:'kam', applicatiions:2, drafts:3},
{ id: 6, name:'jam', applicatiions:0, drafts:0},
{ id: 7, name:'ram', applicatiions:11, drafts:10},
]
Asif Kaif
  • 109
  • 10
  • so what have you tried so far ? – KcH Sep 20 '22 at 17:51
  • Does this answer your question? [How to group by and sum an array of objects?](https://stackoverflow.com/questions/29364262/how-to-group-by-and-sum-an-array-of-objects) – pilchard Sep 20 '22 at 17:55

1 Answers1

1

const data = [ 
{ id:4, name:'sam',stats:[{id:1, partnerId:4, applicatiions:4, drafts:5},{id:2, partnerId:4, applicatiions:1, drafts:2}]},
{ id:5, name:'kam',stats:[{id:1, partnerId:5, applicatiions:2, drafts:3}]},
{ id:6, name:'jam',stats:[]},
{ id:7, name:'ram',stats:[{id:1, partnerId:7, applicatiions:9, drafts:5},{id:2, partnerId:7, applicatiions:2, drafts:5}]}
]

const items = data.map(item=> {return {...item, applicatiions: item.stats.reduce((partialSum, stat) => partialSum + stat.applicatiions ,0), drafts: item.stats.reduce((partialSum, stat) => partialSum + stat.drafts ,0)}});

console.log(items.map(({stats, ...rest}) => rest ))