Search code examples
javascriptjavascript-objects

How to update, push object to object?


This question might already been asked but I'm having some trouble understanding it, I'd like to update my javascript object with new objects.

Object 1 :

var cjson = {};

var t = {
    "infos": "apple",
    "fields": {
        "color":"red",
    }
}

cjson['g320fld1'] = t;

Object 2 :

var data {
  "fruits": {},
  "vegetables": {}
}

Output : I want to push object 1 to object 2 under fruits key. so the ouput look :

{
  "fruits": {
    "g320fld1": {
      "infos": "apple",
      "fields": {
      "color":"red",
    }
  },
  "vegetables": {}
}

What I tried :

push()

data['fruits'].push(cjson);

Error : ...push() is not a function. (I know push() works on array only so it won't work here.)

update()

data['fruits'].update(cjson);

Error : ...update() is not a function. (this one gives the same error but since it's another dictionary shouldn't it work as expected ?)

How can I solve this problem ?


UPDATE :

Sorry I didn't precise, I don't want to erase older data in fruits.


Solution

  • EDIT

    You can use Object.assign(srcObject,newProperties) to append new properties,values to an existing object.

    var cjson = {};
    
    var t = {
        "infos": "apple",
        "fields": {
            "color":"red"
        }
    }
    
    cjson['g320fld1'] = t;
    
    var data ={
      "fruits": {
        otherProperty:"bar"
      },
      "vegetables": {}
    }
    
    Object.assign(data.fruits,cjson);
    
    console.log(data)