JSFiddle - React, Tailwind, and code Playground
by de Montalembert Jonathan
JavaScript
const input = [{
label: "Account Name",
value: "Jon IceCream",
isMulti: false
},
{
label: "Account Number",
value: "1",
isMulti: true
}, {
label: "Account Number",
value: "10203050",
isMulti: true
}, {
label: "Account Number",
value: "020",
isMulti: true
},
{
label: "Bank Location",
value: "S_BANSI",
isMulti: false
},
]
const output = {
"Account Name": "Jon IceCream",
"Account Number": "110203050020",
"Bank Location": "S_BANSI"
};
const transform = (input) => {
return input.reduce((acc, val) => {
if (val.isMulti) {
if (acc[val.label]) {
return {
...acc,
[val.label]: acc[val.label] + val.value
}
} else {
return {
...acc,
[val.label]: val.value
}
}
} else {
return {
...acc,
[val.label]: val.value
}
}
}, {})
}
const actual = transform(input)
console.log(actual, output)
console.log(Object.entries(actual).map(([k, v]) => ({label: k, value: v})))