SERG
SERG

Reputation: 3971

How to add new property to object?

I have an object

 let data = {
                    "data 1": {
                        "row1": "aaaa",

                    },
                    "data 2": {
                        "row3": "nnnnn",

                    }
                }

And I want to add some properties with dynamic names and vals to get such an object:

  let data = {
                    "data 1": {
                        "row1": "aaaa",
                        "row2": "bbbb",
                    },
                    "data 2": {
                        "row3": "nnnnn",
                        "row4": "sssss",
                        "row11": "bbb",
                        "eeee": "ffff"
                    },
                    "dynamic1": {
                        "dyn_2": "dyn_val_1",
                        "dyn_3": "dyn_val_2"
                    }
                }

I have tried this code, but it overwrites the data obj with the last value instead of adding

      responseJson.results.forEach(function (value) {

                data[value.date] = { [value.event_id] : [value.name] };

            })

Upvotes: 0

Views: 80

Answers (1)

Felix Kling
Felix Kling

Reputation: 816364

Well, then don't overwrite the property. Add to the object instead:

responseJson.results.forEach(function (value) {
  if (!data[value.date) {
    data[value.date] = {};
  }
  data[value.date][value.event_id] = value.name;
});

Related: How can I add a key/value pair to a JavaScript object?

Upvotes: 3

Related Questions