Javascript 合并数组中的对象,数组中的对象
目前我有一个小问题,我不是很能解决。我有一个数组,可以包含单个数组,也可以包含多个数组,可以包含多个对象。例如:Javascript 合并数组中的对象,数组中的对象,javascript,arrays,object,Javascript,Arrays,Object,目前我有一个小问题,我不是很能解决。我有一个数组,可以包含单个数组,也可以包含多个数组,可以包含多个对象。例如: const arr = [ [ { "value": "value A" }, { "value": "value B" }, { "value": "value C" }
const arr = [
[
{
"value": "value A"
},
{
"value": "value B"
},
{
"value": "value C"
}
],
[
{
"value": "value A"
},
{
"value": "value B"
},
{
"value": "value C"
}
]
]
我想将基于特定属性(此处为“值”)的对象合并到一个数组中,这样我的结果如下所示:
const result = ["value A", "value B", "value C", "value A", "value B", "value C"]
有人想到了吗?谢谢大家!
const arr=[
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
],
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
]
]
设x=arr.flat().map(v=>v.value);
控制台日志(x)代码>
const arr=[
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
],
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
]
]
设x=arr.flat().map(v=>v.value);
控制台日志(x)代码>我相信您想要的结果是数组,而不是对象。
您的输出示例无效
无论如何,请使用简单的reduce:
const arr=[
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
],
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
]
]
常数结果=arr.reduce((acc,cur)=>{
常量值=当前映射(({value})=>value);
返回acc.concat(值)
}, []);
控制台日志(结果)代码>我相信您想要的结果是数组,而不是对象。
您的输出示例无效
无论如何,请使用简单的reduce:
const arr=[
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
],
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
]
]
常数结果=arr.reduce((acc,cur)=>{
常量值=当前映射(({value})=>value);
返回acc.concat(值)
}, []);
控制台日志(结果)像这样编码
const arr=[
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
],
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
]
]
函数合并数组(arr,属性){
常数res=[];
for(arr中的const innerArr){
用于(innerArr的常量对象){
res.push(对象[属性]);
}
}
返回res;
}
log(合并数组(arr,“value”);
像这样吗
const arr=[
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
],
[
{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
]
]
函数合并数组(arr,属性){
常数res=[];
for(arr中的const innerArr){
用于(innerArr的常量对象){
res.push(对象[属性]);
}
}
返回res;
}
log(合并数组(arr,“value”);
我使用Array.prototype的嵌套reduce和map方法
{
常数arr=[
[{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
],
[{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
]
];
const newArr=arr.reduce((进位,项目)=>{
carry.push(…item.map(item2=>item2.value))
返运;
}, [])
console.log(newArr)
}
我使用Array.prototype的嵌套reduce和map方法
{
常数arr=[
[{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
],
[{
“值”:“值A”
},
{
“值”:“值B”
},
{
“值”:“值C”
}
]
];
const newArr=arr.reduce((进位,项目)=>{
carry.push(…item.map(item2=>item2.value))
返运;
}, [])
console.log(newArr)
}
请确认您的预期输出,好吗?您编写了const result={“value A”、“value B”、“value C”、“value A”、“value B”、“value C”}
(这不是有效的JS)。尽管我假定您的意思是const result=[“value A”、“value B”、“value C”、“value A”、“value B”、“value C”]
您的结果不可能,因为您描述的对象只有值,没有键。你的意思是使用数组吗?Ooopsie,是的,我的结果当然应该是数组。谢谢你能确认一下你的预期产量吗?您编写了const result={“value A”、“value B”、“value C”、“value A”、“value B”、“value C”}
(这不是有效的JS)。尽管我假定您的意思是const result=[“value A”、“value B”、“value C”、“value A”、“value B”、“value C”]
您的结果不可能,因为您描述的对象只有值,没有键。你的意思是使用数组吗?Ooopsie,是的,我的结果当然应该是数组。谢谢我用flat
I用flat
Dude投票了答案,太棒了!工作起来很有魅力。我得调查一下,公寓到底是干什么的。谢谢:)哥们,太棒了!工作起来很有魅力。我得调查一下,公寓到底是干什么的。谢谢:)