Javascript 如何将多个对象的数组合并为单个对象?

Javascript 如何将多个对象的数组合并为单个对象?,javascript,arrays,lodash,Javascript,Arrays,Lodash,我有一个这样的数组: [ { tags__region: "Stockholm" }, { tags__region: "Lund" }, { tags__region: "Mora" }, { tags__user: "Johan" }, { tags__user: "Eva" } ] { tags__region: ["Stockholm", "Lund", "Mora"], tags__user: ["Johan", "Eva"] } 我想把它变成这样一个

我有一个这样的数组:

[
  { tags__region: "Stockholm" },
  { tags__region: "Lund" },
  { tags__region: "Mora" },
  { tags__user: "Johan" },
  { tags__user: "Eva" }
]
{
  tags__region: ["Stockholm", "Lund", "Mora"], 
  tags__user: ["Johan", "Eva"]
}
我想把它变成这样一个物体:

[
  { tags__region: "Stockholm" },
  { tags__region: "Lund" },
  { tags__region: "Mora" },
  { tags__user: "Johan" },
  { tags__user: "Eva" }
]
{
  tags__region: ["Stockholm", "Lund", "Mora"], 
  tags__user: ["Johan", "Eva"]
}
洛达斯有办法吗? 普通的数组/对象方法足够简单吗

请记住,我的数组中的键是未知的,因此它们并不总是相同的。

简单Javascript

让arr=[{
标签:斯德哥尔摩地区
},
{
塔格斯鲁地区:“隆德”
},
{
tags_____地区:“莫拉”
},
{
标记用户:“Johan”
},
{
标记用户:“Eva”
}
];
arr=arr.reduce((acc,val)=>{
让key=Object.keys(val)[0];
让value=Object.values(val)[0];
acc[键]=acc[键]?[…acc[键],值]:[值]
返回acc;
}, {})

控制台日志(arr)您可以使用Lodash的
\uUx.mergeWith()
和数组排列,将数组中的所有项组合到单个对象中。如果两个对象中存在相同的属性,则会将值收集到一个数组中:

const arr=[{“标签区”:“斯德哥尔摩”},{“标签区”:“隆德”},{“标签区”:“莫拉”},{“标签区用户”:“约翰”},{“标签区用户”:“伊娃”}]
const result=\.mergeWith({},…arr,(objValue=[],srcValue)=>
[…objValue,srcValue]
)
console.log(结果)

非常感谢!美丽的!(不幸的是,我太新了,无法给出你的答案)谢谢你,这也很好