代码之家  ›  专栏  ›  技术社区  ›  Sameer

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

  •  -2
  • Sameer  · 技术社区  · 7 年前

    我使用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键):

    [
        {
            "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": {}
                }
            ]
        }
    ]
    

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   brk    7 年前

    您可以使用 array#map . 这将返回一个带有修改键的新数组(&a);价值观

    var orgArray = [{
        "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"
            }
          }
        ]
      }
    ]
    var newArray = orgArray.map(function(item) {
      return {
        "id": item.id,
        "gsm": item.gsm,
        "firstName": item.firstName,
        "lastName": item.lastName,
         // an IIFE which will create the new contactgroups
        "contactgroups": (function() {
          return item.contactgroups.map(function(item2, index) {
            return {
              "contactId": item2.contactId,
              "groupId": item2.groupId,
              "groupname": item2.group.groupname,
              "group": {}
            }
    
          })
    
        }())
      }
    })
    console.log(newArray);