get max value
by John Wick
JavaScript
var records=[
{
"promotion_name": "AAA",
"totals": {
"internalPromotions": 12,
"externalPromotions": 0,
"internalPromotionsCount": 12,
"externalPromotionsCount": 0,
"totalExternalRedeemed": 2,
"totalExternalRedeemedCount": 0
}
},
{
"promotion_name": "BBB",
"totals": {
"internalPromotions": 0,
"externalPromotions": 0,
"internalPromotionsCount": 1,
"externalPromotionsCount": 0,
"totalExternalRedeemed": 0,
"totalExternalRedeemedCount": 1
}
},
{
"promotion_name": "CCC",
"totals": {
"internalPromotions": 0,
"externalPromotions": 3,
"internalPromotionsCount": 2,
"externalPromotionsCount": 0,
"totalExternalRedeemed": 0,
"totalExternalRedeemedCount": 0
}
},
{
"promotion_name": "DDD",
"totals": {
"internalPromotions": 6,
"externalPromotions": 2,
"internalPromotionsCount": 6,
"externalPromotionsCount": 0,
"totalExternalRedeemed": 0,
"totalExternalRedeemedCount": 0
}
},
{
"promotion_name": "EEE",
"totals": {
"internalPromotions": 6,
"externalPromotions": 1,
"internalPromotionsCount": 5,
"externalPromotionsCount": 0,
"totalExternalRedeemed": 1,
"totalExternalRedeemedCount": 2
}
}
];
/* var output={};
var n=records?.length;
for (let i=0; i<n; i++) {
records[i]?.totals
}
*/
// Aggregating totals
/* var results = records.reduce((acc, record) => {
Object.keys(record.totals).forEach(key => {
acc[key] = (acc[key] || 0) + record.totals[key];
});
return acc;
}, {}); */
// Aggregating maximum values
var results = records.reduce((acc, record) => {
Object.keys(record.totals).forEach(key => {
acc[key] = Math.max(acc[key] || 0, record.totals[key]);
});
return acc;
}, {});
console.log('output:', results);