Arrays 将数组结构从第一个数组转换为第二个数组

Arrays 将数组结构从第一个数组转换为第二个数组,arrays,json,angular,typescript,Arrays,Json,Angular,Typescript,这是我的多维数组。 输出应为array2结构。 我已经尝试了很多方法在easy中隐藏上面的数组,但是所有方法都产生了大量的代码和大量的迭代。 有什么简单的方法可以做到这一点吗 我在angular和JavaScript方面是个新手 var array1=[ { "id": 1, "name": "Johny", "category": [

这是我的多维数组。 输出应为array2结构。 我已经尝试了很多方法在easy中隐藏上面的数组,但是所有方法都产生了大量的代码和大量的迭代。 有什么简单的方法可以做到这一点吗

我在angular和JavaScript方面是个新手

var array1=[
    {
        "id": 1,
        "name": "Johny",
        "category": [
            {
                "id": 12,
                "name": "GUI",
                "status": {
                    "id": 123,
                    "status": "working",
                    "name": "GUI"
                }
            },
            {
                "id": 13,
                "name": "GFX",
                "status": {
                    "id": 124,
                    "status": "working",
                    "name": "GFX"
                }
            },
            {
                "id": 14,
                "name": "UI",
                "status": {
                    "id": 125,
                    "status": "working",
                    "name": "UI"
                }
            }
        ]
    },
    {
        "id": 2,
        "name": "Paul",
        "category": [
            {
                "id": 21,
                "name": "GUI",
                "status": {
                    "id": 212,
                    "status": "Progress",
                    "name": "GUI"
                }
            },
            {
                "id": 22,
                "name": "GFX",
                "status": {
                    "id": 221,
                    "status": "working",
                    "name": "GFX"
                }
            },
            {
                "id": 23,
                "name": "DM",
                "status": {
                    "id": 231,
                    "status": "done",
                    "name": "DM"
                }
            }
        ]
    }
]
我想换成这个阵列

var array2=[
    {
        "id": 1,
        "name": "Johny",
        "category": [
            {
                "id": 12,
                "name": "GUI",
                "data": [
                    {
                        "id": 12,
                        "name": "GUI",
                        "status": {
                            "id": 123,
                            "status": "working",
                            "name": "GUI"
                        }
                    },
                    {
                        "id": 21,
                        "name": "GUI",
                        "status": {
                            "id": 212,
                            "status": "Progress",
                            "name": "GUI"
                        }
                    }
                ]
            },
            {
                "id": 13,
                "name": "GFX",
                "data": [
                    {
                        "id": 13,
                        "name": "GFX",
                        "status": {
                            "id": 124,
                            "status": "working",
                            "name": "GFX"
                        }
                    },
                    {
                        "id": 22,
                        "name": "GFX",
                        "status": {
                            "id": 221,
                            "status": "working",
                            "name": "GFX"
                        }
                    }
                ]
            },
            {
                "id": 14,
                "name": "UI",
                "data": [
                    {
                        "id": 14,
                        "name": "UI",
                        "status": {
                            "id": 125,
                            "status": "working",
                            "name": "UI"
                        }
                    },
                    //null data if not in first
                    {}
                ]
            },
            {
                "id": 23,
                "name": "DM",
                "data": [
                    //null data if not in first
                    {},
                    {
                        "id": 23,
                        "name": "DM",
                        "status": {
                            "id": 231,
                            "status": "done",
                            "name": "DM"
                        }
                    }
                ]
            }
        ]
    },
    {
        "id": 2,
        "name": "Paul",
        "category": [
            {
                "id": 21,
                "name": "GUI",
                "data": [
                    {
                        "id": 12,
                        "name": "GUI",
                        "status": {
                            "id": 123,
                            "status": "working",
                            "name": "GUI"
                        }
                    },
                    {
                        "id": 21,
                        "name": "GUI",
                        "status": {
                            "id": 212,
                            "status": "Progress",
                            "name": "GUI"
                        }
                    }
                ]
            },
            {
                "id": 22,
                "name": "GFX",
                "data": [
                    {
                        "id": 13,
                        "name": "GFX",
                        "status": {
                            "id": 124,
                            "status": "working",
                            "name": "GFX"
                        }
                    },
                    {
                        "id": 22,
                        "name": "GFX",
                        "status": {
                            "id": 221,
                            "status": "working",
                            "name": "GFX"
                        }
                    }
                ]
            },
            {
                "id": 14,
                "name": "UI",
                "data": [
                    {
                        "id": 14,
                        "name": "UI",
                        "status": {
                            "id": 125,
                            "status": "working",
                            "name": "UI"
                        }
                    },
                    //null data if not in first
                    {}
                ]
            },
            {
                "id": 23,
                "name": "DM",
                "data": [
                    //null data if not in first
                    {},
                    {
                        "id": 23,
                        "name": "DM",
                        "status": {
                            "id": 231,
                            "status": "done",
                            "name": "DM"
                        }
                    }
                ]
            }
        ]
    }
]
输出应为array2结构


提前感谢。

那么您只想将原始数据作为附加的
数据
属性?将
forEach()
循环与函数结合使用非常简单:

array1.forEach((obj) => {
    obj.category = obj.category.map((cat) => {
    return {id: cat.id, name: cat.name, data: cat}
  });
})

希望这就是您要查找的:-)

我需要对属性数据进行额外修改,如果类别数组中存在键(名称)值,则我要推送类别对象,否则推送null。