如何展平嵌套对象?

时间:2020-03-21 00:31:20

标签: javascript json typescript

我有以下嵌套对象:

[
{
    "id": "b2dgd67e7e7",
    "fields": {
        "task1": "task 1",
        "task2": "task 2"
    }
},
 {
    "id": "b2dgd67e7e8",
    "fields": {
        "task1": "task 3",
        "task2": "task 4"
    }
}
]

我想将其展平为以下格式:....................................... ........

[
{

    "fields": {
        "task1": "task 1",
        "task2": "task 2",
        "id": "b2dgd67e7e7",
    }
},
 {

    "fields": {
        "task1": "task 3",
        "task2": "task 4",
        "id": "b2dgd67e7e8",
    }
}
]

1 个答案:

答案 0 :(得分:2)

您可以在数组上使用.map()来构建映射对象的新数组。要映射每个对象,您可以从对象中destructureidfields属性,然后返回一个新对象,其中包含您的fields属性以及的原始内容fields对象的值以及其他外部属性(例如id):

const arr = [{ "id": "b2dgd67e7e7", "fields": { "task1": "task 1", "task2": "task 2" } }, { "id": "b2dgd67e7e8", "fields": { "task1": "task 3", "task2": "task 4" } } ];

const flattenToKey = (arr, key) => 
  arr.map(({[key]: k, ...r}) => ({[key]: {...k, ...r}}));

const res = flattenToKey(arr, 'fields');
console.log(res);

相关问题