i have an array like
var arrays = [
{ "name": "aaa", "value": "bbb" },
{ "name": "ccc", "value": "ccc" },
{ "name": "ddd", "value": [ 'ee', 'ff', 'gg' ] }
]
but i need the convert it into
var arrays = [
{ "name": "aaa", "value": "bbb" },
{ "name": "ccc", "value": "ccc" },
{ "name": "ddd", "value": "ee, ff, gg" }
]
CodePudding user response:
const modifiedArray = array.map(obj => {
return {...obj, value: obj.value.toString()}
})
var array = [
{ "name": "aaa", "value": "bbb" },
{ "name": "ccc", "value": "ccc" },
{ "name": "ddd", "value": [ 'ee', 'ff', 'gg' ] }
]
const modifiedArray = array.map(obj => {
return {...obj, value : obj.value.toString()}
})
console.log(modifiedArray)
CodePudding user response:
There are many ways to do this. This is one of them:
const array = [
{ "name": "aaa", "value": "bbb" },
{ "name": "ccc", "value": "ccc" },
{ "name": "ddd", "value": [ 'ee', 'ff', 'gg' ] }
];
array.forEach(el=>Array.isArray(el.value) && (el.value=el.value.join(" ,")))
console.log(array)
CodePudding user response:
Though this will only check 1 layer deep, also I'm not really sure what you're trying to do.
const arrays = [
{ name: "aaa", value: "bbb" },
{ name: "ccc", value: "ccc" },
{ name: "ddd", value: ["ee", "ff", "gg"] }
];
const converted = arrays.map(value => {
let convert = { ...value };
for (const key in convert) {
if (Array.isArray(convert[key])) {
convert[key] = convert[key].join(", ");
};
};
return convert;
});
console.log(converted);
CodePudding user response:
A tweak on @kritiz's answer ...
array.map( obj => ({...obj, value : [].concat(obj.value).join(', ')}) );
DEMO
let array = [
{ "name": "aaa", "value": "bbb" },
{ "name": "ccc", "value": "ccc" },
{ "name": "ddd", "value": [ 'ee', 'ff', 'gg' ] }
]
let newArray = array.map( obj => ({...obj, value : [].concat(obj.value).join(', ')}) );
console.log( newArray )