如何在javascript中按键值类型更改嵌套对象数组
我想知道如何在javascript中修改对象数组 i、 e对于obj,当如何在javascript中按键值类型更改嵌套对象数组,javascript,arrays,object,nested-loops,Javascript,Arrays,Object,Nested Loops,我想知道如何在javascript中修改对象数组 i、 e对于obj,当值为数组时,将值键数组更改为字符串 当value为字符串时,将value键字符串更改为array 另外,如何将输出转换为输入obj,以及(反之亦然-当您使用时,您可以返回一个包含当前对象的所有属性和值的新对象(…o),以及更新值属性。更新值属性将检查o.value是否为数组(使用检查),如果是,它会将元素转换为字符串,它是字符串(即:不是数组),它会在逗号上将字符串转换为数组 见下例: 函数newObject(arr){
值
为数组时,将值
键数组更改为字符串
当value
为字符串时,将value
键字符串更改为array
另外,如何将输出转换为输入obj
,以及(反之亦然-当您使用时,您可以返回一个包含当前对象的所有属性和值的新对象(…o
),以及更新值
属性。更新值属性将检查o.value
是否为数组(使用检查),如果是,它会将元素转换为字符串,它是字符串(即:不是数组),它会在逗号上将字符串转换为数组
见下例:
函数newObject(arr){
返回arr.map(o=>({
……哦,
value:Array.isArray(o.value)?o.value.join():o.value.split(“,”)
}));
}
常量arr1=[{id:0,键:“s1”,值:[“listA”,“listB”],img:},{id:1,键:“s2”,值:[“listC”],img:},{id:2,键:“s3”,值:[“listD”,“listE”,“listF”],img:};
const arr2=[{id:0,键:“s1”,值:“listA,listB”,img:},{id:1,键:“s2”,值:“listC”,img:},{id:2,键:“s3”,值:“listD,listE,listF”,img:}];
const res1=新对象(arr1);
const res2=新对象(arr2);
控制台日志(res1);
log(res2);
我们可以使用for循环来实现更高的性能
让arr_1=[
{id:0,键:“s1”,值:[“listA”,“listB”],img:},
{id:1,键:“s2”,值:[“listC”],img:},
{id:2,键:“s3”,值:[“listD”、“listE”、“listF”],img:},
{id:0,键:“s1”,值:“listA,listB”,img:},
{id:1,键:“s2”,值:“listC”,img:},
{id:2,键:“s3”,值:“listD,listE,listF”,img:}
]
常数f=(arr)=>{
for(设i=0;i f(arr_1)
输出数组的最后一个对象中的listF
发生了什么事?(第一个代码块?@NickParsons感谢回复,更新了代码,被遗漏了arr.forEach(item=>item.value=item.value.join(“”)
和arr.forEach(item=>item.value=item.value.split(“,”)
function newObject(obj){
var result = obj.map(e=>typeof e.value === "string" ?
{...e, value: [e.value] } :
e.value.map(value => ({...e,value}))
).flat()
console.log(result);
return result;
}
input:
obj =[
{ id: 0, key: "s1", value: ["listA","listB"], img:"" },
{ id: 1, key: "s2", value: ["listC"], img: "" },
{ id: 2, key: "s3", value: ["listD","listE","listF"], img: "" }
]
Expected output:
[
{ id: 0, key: "s1", value: "listA,listB", img:""},
{ id: 1, key: "s2", value: "listC", img:""},
{ id: 2, key: "s3", value: "listD,listE,listF", img:""}
]
input
[
{ id: 0, key: "s1", value: "listA,listB", img:""},
{ id: 1, key: "s2", value: "listC", img:""},
{ id: 2, key: "s3", value: "listD,listE,listF", img:""}
]
Expected Output
[
{ id: 0, key: "s1", value: ["listA","listB"], img:"" },
{ id: 1, key: "s2", value: ["listC"], img: "" },
{ id: 2, key: "s3", value: ["listD","listE","listF"], img: "" }
]