Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 合并数组中的对象,数组中的对象_Javascript_Arrays_Object - Fatal编程技术网

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投票了答案,太棒了!工作起来很有魅力。我得调查一下,公寓到底是干什么的。谢谢:)哥们,太棒了!工作起来很有魅力。我得调查一下,公寓到底是干什么的。谢谢:)