I have the following Array:
const arr = [{
id: 0,
title: 'A',
countries: [{
val: "1173",
label: "England"
}, {
val: "1172",
label: "Egypt"
}],
companies: [{
val: "7346",
label: "Ab Company"
}]
},
{
id: 1,
title: 'B',
countries: [{
val: "1175",
label: "France"
}],
companies: [{
val: "8294",
label: "Cd Company"
}]
},
]
What I want to achieve is:
const arr = [{
id: 0,
title: 'A',
countries: ["England", "Egypt"],
companies: ["Ab Company"]
},
{
id: 1,
title: 'B',
countries: ["France"],
companies: ["Cd Company"]
},
]
My approach:
const mapJobArrValsToString = (arr) => {
if (!(arr && arr.length)) {
return [];
}
const fieldsToAddLabels = ['companies', 'countries'];
const clonedArr = [...arr];
clonedArr.forEach((job) => {
const objKeysList = Object.keys(job).filter((fieldName) => fieldsToAddLabels.includes(fieldName));
objKeysList.forEach((key) => {
// eslint-disable-next-line no-param-reassign
job[key] = job[key].map((el) => el.label);
});
});
return clonedArr;
};
const arr = [{
id: 0,
title: 'A',
countries: [{
val: "1173",
label: "England"
}, {
val: "1172",
label: "Egypt"
}],
companies: [{
val: "7346",
label: "Ab Company"
}]
},
{
id: 1,
title: 'B',
countries: [{
val: "1175",
label: "France"
}],
companies: [{
val: "8294",
label: "Cd Company"
}]
},
];
console.log(mapJobArrValsToString(arr));
What am I doing wrong ?