I have object:
const data3 = [
{
calculatedPropertyDescription: "where evri_courionsignature_gb is Dispatched",
category: "red",
tags: [
{ name: 'LandingPage', value: 'true' },
{ name: 'Country', value: 'GB' },
{ name: 'Carrier', value: 'RoyalMail' },
{ name: 'EventCode', value: 'Dispatched' },
]
},
{
calculatedPropertyDescription: "where evgnature_gb is Dispatched",
category: "red",
tags: [
{ name: 'LandingPage', value: 'true' },
{ name: 'Country', value: 'USA' },
{ name: 'Carrier', value: 'Evri' },
{ name: 'EventCode', value: 'Dispatched' },
]
},
]
I need from tags: create array of pairs values.
For exmple from:
{ name: 'LandingPage', value: 'true' },
I need get:
[..., 'LandingPage:true', 'Country:GB',...]
Thank you
>Solution :
A simple Array#map() will do:
function mergeKeyValuePairs(tags) {
return tags.map(({ name, value }) => `${name}:${value}`);
}
Explanation: This means "convert each tag object in a list of tags to a string which is concatenated from the tag’s name, a colon and value". .map() means to do something for every element in a given array.
Try it:
const data3 = [
{
calculatedPropertyDescription: "where evri_courionsignature_gb is Dispatched",
category: "red",
tags: [
{ name: 'LandingPage', value: 'true' },
{ name: 'Country', value: 'GB' },
{ name: 'Carrier', value: 'RoyalMail' },
{ name: 'EventCode', value: 'Dispatched' },
]
},
{
calculatedPropertyDescription: "where evgnature_gb is Dispatched",
category: "red",
tags: [
{ name: 'LandingPage', value: 'true' },
{ name: 'Country', value: 'USA' },
{ name: 'Carrier', value: 'Evri' },
{ name: 'EventCode', value: 'Dispatched' },
]
},
];
function mergeKeyValuePairs(tags) {
return tags.map(({ name, value }) => `${name}:${value}`);
}
console.log(data3);
data3.forEach(
object => object.tags = mergeKeyValuePairs(object.tags)
);
console.log(data3);
.as-console-wrapper {
max-height: 100% !important;
}