Adding Key Value To An Object In Typescript
How do we insert key and values to an existing array of object based on a condition, can this be solve using map ? in a single line ? . Thanks If dealType from the object is === PM
Solution 1:
We can use Array.map()
, using a simple .map() function.
We use a switch statement on dealType to decide how to map each deal.
By default we just leave the deal unmodified.
One could extend the logic used in 'PM Restructure' to add more parameters for other deal types too.
const input = [ { "id": 196, "name": "Partner Deal ", "dealType": "Partner Location Submission", "annualRentProposed": null, "annualRentCurrent": null, "firmTermRemaining": null, "firmTermAdded": null, "maxAvailableTerm": null, "capitalContribution": null, "createdOnString": "09/30/2021", "fileName": null, "serverFileName": null, "size": null, "absoluteUri": null, "sentTo": null }, { "id": 197, "name": "Buyout Deal Disposition", "dealType": "Idle Buyout", "annualRentProposed": null, "annualRentCurrent": null, "firmTermRemaining": null, "firmTermAdded": null, "maxAvailableTerm": null, "capitalContribution": null, "createdOnString": "09/30/2021", "fileName": null, "serverFileName": null, "size": null, "absoluteUri": null, "sentTo": null }, { "id": 199, "name": "Sublease Deal Disposition", "dealType": "Idle Sublease", "annualRentProposed": null, "annualRentCurrent": null, "firmTermRemaining": null, "firmTermAdded": null, "maxAvailableTerm": null, "capitalContribution": null, "createdOnString": "09/30/2021", "fileName": null, "serverFileName": null, "size": null, "absoluteUri": null, "sentTo": null }, { "id": 203, "name": "Disposition of Location #10532-S", "dealType": "PM Restructure", "annualRentProposed": null, "annualRentCurrent": null, "firmTermRemaining": null, "firmTermAdded": null, "maxAvailableTerm": null, "capitalContribution": null, "createdOnString": "10/01/2021", "fileName": null, "serverFileName": null, "size": null, "absoluteUri": null, "sentTo": null }, { "id": 214, "name": null, "dealType": "Approval to Close", "annualRentProposed": null, "annualRentCurrent": null, "firmTermRemaining": null, "firmTermAdded": null, "maxAvailableTerm": null, "capitalContribution": null, "createdOnString": "10/04/2021", "fileName": null, "serverFileName": null, "size": null, "absoluteUri": null, "sentTo": null }, { "id": 215, "name": "pmpm", "dealType": "PM Restructure", "annualRentProposed": null, "annualRentCurrent": null, "firmTermRemaining": null, "firmTermAdded": null, "maxAvailableTerm": null, "capitalContribution": null, "createdOnString": "10/05/2021", "fileName": null, "serverFileName": null, "size": null, "absoluteUri": null, "sentTo": null } ]
// Function that maps each deal according to the dealType functionmapDeal(deal, parameters) {
switch (deal.dealType) {
case'PM Restructure':
// Add any extra parameters for PM Restructurereturn { ...deal, ...(parameters['PM Restructure'] || {})};
case'Partner Location Submission':
// Remove annualRentProposed, annualRentCurrent using object destructuringconst { annualRentProposed, annualRentCurrent, ...rest } = deal;
return rest;
default:
// Leave the deal as it isreturn deal;
}
}
functionmapDeals(input, parameters) {
return input.map(deal =>mapDeal(deal, parameters));
}
const parameters = {
'PM Restructure': {
cashContribution: 3000,
storeCashFlow: 4000
}
}
console.log(mapDeals(input, parameters))
.as-console-wrapper { max-height: 100%!important; top: 0; }
Post a Comment for "Adding Key Value To An Object In Typescript"