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(结果)
非常感谢!美丽的!(不幸的是,我太新了,无法给出你的答案)谢谢你,这也很好