json的对象数组

时间:2017-11-08 20:40:41

标签: javascript json

我不知道是否存在相关问题,但我有一个具有以下结构的变量:

[
  { key_1: [{...},{...},{...}] },
  { key_2: [{...},{...},{...}] },
  { key_3: [{...},{...},{...}] },
]

我想实现这个目标:

[
  { 
    key_1: [{...},{...},{...}],
    key_2: [{...},{...},{...}],
    key_3: [{...},{...},{...}]
  }
]

我尝试过使用mapforEach,但我真的被卡住了。谢谢你的帮助

3 个答案:

答案 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])
);