Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript替换某些对象和数组?_Javascript_Arrays_Json_Object_Reduce - Fatal编程技术网

使用javascript替换某些对象和数组?

使用javascript替换某些对象和数组?,javascript,arrays,json,object,reduce,Javascript,Arrays,Json,Object,Reduce,我使用nodejs作为服务器端,我得到了一些json对象 这是我的带有对象的json数组 [ { "id": 20, "gsm": "123456789", "firstName": "Mohamed", "lastName": "Sameer", "contactgroups": [ { "contactId": 20,

我使用nodejs作为服务器端,我得到了一些json对象

这是我的带有对象的json数组

[
    {
        "id": 20,
        "gsm": "123456789",
        "firstName": "Mohamed",
        "lastName": "Sameer",
        "contactgroups": [
            {
                "contactId": 20,
                "groupId": 14,
                "group": {
                    "groupname": "Angular"
                }
            }
        ]
    },
    {
        "id": 21,
        "gsm": "987654321",
        "firstName": "Ganesh",
        "lastName": "Pandiyan",
        "contactgroups": [
            {

                "contactId": 21,
                "groupId": 14,
                "group": {
                    "groupname": "Angular"
                }
            },
            {
                "contactId": 21,
                "groupId": 15,
                "group": {
                    "groupname": "React"
                }
            }
        ]
    }
]
我希望最终输出如下(请参阅我的groupname键):

可能吗?要做到这一点,哪一个是最好的地图或减少或洛达斯?有什么办法吗

我想更改groupname的位置并从组对象中删除groupname。

您可以使用。这将返回一个带有修改的键和值的新数组

var orgArray=[{
“id”:20,
“gsm”:“123456789”,
“名字”:“穆罕默德”,
“姓氏”:“Sameer”,
“联系人组”:[{
“联系人ID”:20,
“组ID”:14,
“集团”:{
“组名”:“角度”
}
}]
},
{
“id”:21,
“gsm”:“987654321”,
“名字”:“甘尼什”,
“姓氏”:“潘迪扬”,
“联系人组”:[{
“联系人ID”:21,
“组ID”:14,
“集团”:{
“组名”:“角度”
}
},
{
“联系人ID”:21,
“组ID”:15,
“集团”:{
“组名”:“反应”
}
}
]
}
]
var newArray=orgArray.map(函数(项){
返回{
“id”:项目id,
“gsm”:item.gsm,
“firstName”:item.firstName,
“lastName”:item.lastName,
//将创建新联系人组的生活
“联系人组”:(函数(){
return item.contactgroups.map(函数(item2,索引){
返回{
“联系人ID”:项目2.contactId,
“groupId”:item2.groupId,
“组名”:item2.group.groupname,
“集团”:{}
}
})
}())
}
})

log(newArray)最好用文字解释,而不是转储两个大的json内容。我想改变groupname在第一个json中的位置,就像第二个一样json@MohamedSameer你基本上一直在问同一个问题,显然没有从以前的答案中学到任何东西。与上次一样,这是非常基本的重构,可以使用
forEach
在数组上循环来完成。对于每个对象,在contactgroups数组上循环。对于每个联系人,将groupname属性添加到联系人,并将其值设置为group.groupname内的值。用n个空对象覆盖组项目。一个简单的
forEach()
.map()
就足够了。@ChrisG发布一些代码?我正在努力,当然我是一个编程新手,会加速的soon@MohamedSameer我已经更新了代码。请核实
[
    {
        "id": 20,
        "gsm": "123456789",
        "firstName": "Mohamed",
        "lastName": "Sameer",
        "contactgroups": [
            {
                "contactId": 20,
                "groupId": 14,
                "groupname": "Angular",
                "group": {}
            }
        ]
    },
    {
        "id": 21,
        "gsm": "987654321",
        "firstName": "Ganesh",
        "lastName": "Pandiyan",
        "contactgroups": [
            {

                "contactId": 21,
                "groupId": 14,
                "groupname": "Angular",
                "group": {}
            },
            {
                "contactId": 21,
                "groupId": 15,
                "groupname": "React",
                "group": {}
            }
        ]
    }
]