我有以下嵌套对象:
[
{
"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",
}
}
]
答案 0 :(得分:2)
您可以在数组上使用.map()
来构建映射对象的新数组。要映射每个对象,您可以从对象中destructure的id
和fields
属性,然后返回一个新对象,其中包含您的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);