What is the best way to map this?
I have an array of 5 stages here which is the initial stages array. However, I need to map the following newData array against these stages. field_4
should map against field-4
. And field_5
should map against field-5
. I have also attached how it should be returned. I realise this probably isn’t the proper use of StackOverflow as it’s more of a question, but I’ve been trying for a while with no luck. Any pointers in the right direction would be great.
const stages = [ { key: 'field-one' }, { key: 'field-two' }, { key: 'field-three' }, { key: 'field-four' }, { key: 'field-five' }, ] const newData = { field_four: 9, field_five: 'D', }
// should get
const stages = [ { key: 'field-one' }, { key: 'field-two' }, { key: 'field-three' }, { key: 'field-four', value: 'D' }, { key: 'field-five', value: 9 }, ];
Advertisement
Answer
Just run a simple map
function, compare the properties. If the required property is found, then append that object with a new value
const stages = [ { key: "bank-feeds" }, { key: "has-property" }, { key: "other-loans" }, { key: "industry-code" }, { key: "time-in-business" } ]; const newData = { trading_time_months: 9, industry_code: "D" }; const result = stages.map((stage) => { const { key } = stage; if (key === "industry-code") { return { ...stage, value: newData.industry_code }; } else if (key === "time-in-business") { return { ...stage, value: newData.trading_time_months }; } else { return stage; } }); console.log(result);