我不知道是否存在相关问题,但我有一个具有以下结构的变量:
[
{ key_1: [{...},{...},{...}] },
{ key_2: [{...},{...},{...}] },
{ key_3: [{...},{...},{...}] },
]
我想实现这个目标:
[
{
key_1: [{...},{...},{...}],
key_2: [{...},{...},{...}],
key_3: [{...},{...},{...}]
}
]
我尝试过使用map
和forEach
,但我真的被卡住了。谢谢你的帮助
答案 0 :(得分:4)
不需要多次forEach调用的更紧凑版本可能是这样的:
const final = [initial.reduce((finalObj, nextObj) => Object.assign(finalObj, nextObj), {})]
这使用reduce从一个新对象开始,然后使用Object.assign()将每个内部对象合并到其中。
答案 1 :(得分:2)
试试这个:
let output = {};
array.forEach(doc => {
for(let key in doc){
output[key] = doc[key];
}
});
let result = [output]
答案 2 :(得分:2)
这应该可以解决问题。这样做是遍历初始数组中的所有元素,然后遍历该对象中的所有键。它会将所有这些复制到result
对象中。
let result = {};
initial.forEach(obj =>
Object.keys(obj).forEach(key => result[key] = obj[key])
);