首页 > 解决方案 > 有没有办法根据键将对象附加到现有的对象数组中

问题描述

我有一个如下所示的 json 对象,

let existing_data = [
       {
          "client":[
             {
                "name":"aaaa",
                "filter":{
                   "name":"123456"
                }
             }
          ]
       },
       {
          "server":[
             {
                "name":"qqqqq",
                "filter":{
                   "name":"984567"
                }
             }
          ]
       },
       {
          "server_2":[
             {
                "name":"Testing_2",
                "filter":{
                   "name":"567845"
                }
             }
          ]
       }
    ]

这将是动态的,截至目前刚刚给出了示例对象。如果我填写表单输入,将得到如下所示的对象,

let input_data =  {
      "client":[
         {
            "name":"aaaa",
            "filter":{
               "name":"123456"
            }
         }
      ]
    }

我需要将此对象附加到现有的“客户端”json 对象中。预期的输出会像,

[
   {
      "client":[
         {
            "name":"aaaa",
            "filter":{
               "name":"123456"
            }
         },
         {
            "name":"bbbb",
            "filter":{
               "name":"456789"
            }
         }
      ]
   },
   {
      "server":[
         {
            "name":"qqqqq",
            "filter":{
               "name":"984567"
            }
         }
      ]
   },
   {
      "server_2":[
         {
            "name":"Testing_2",
            "filter":{
               "name":"567845"
            }
         }
      ]
   }
]

我尝试了以下方法,但它没有按预期工作。一些帮助将不胜感激。

像下面这样尝试但没有按预期工作,

existing_data.forEach(function (obj) {
  if(Object.keys(obj) == 'client') {
    let old_values = Object.values(obj['client']);
    let new_values = {old_values,input_data['client']};
   }
});
    console.log(JSON.stringify(new_values));

标签: javascriptjson

解决方案


我不知道我是否理解。但是,正如您所说,您想输入一个对象,该对象已经在原始数组中的对象之中。客户端名称"aaaa"已经在existing_datajson 中。是这样吗?


推荐阅读