16

If I had an array as such:

var myarray = [];

myarray.push({
    "Name": 'Adam',
    "Age": 33
});

myarray.push({
    "Name": 'Emily',
    "Age": 32
});

This gives me an array where I can pull out values like myarray[0].Name which would give me "Adam".

However, after this array is built, how can I add an "address" field with a value of "somewhere street" into the array at position [0], so that my fields in that object at position zero are now Name, Age, and Address with corresponding values?

I was thinking splice() somehow but couldn't find an example using objects, just examples with simple arrays.

Paul Roub
  • 36,322
  • 27
  • 84
  • 93
jensanity5000
  • 324
  • 1
  • 3
  • 10

2 Answers2

27

You can simply add properties ("fields") on the fly.

Try

myarray[0].Address = "123 Some St.";

or

myarray[0]["Address"] = "123 Some St.";

var myarray = [];

myarray.push({
    "Name": 'Adam',
    "Age": 33
});

myarray.push({
    "Name": 'Emily',
    "Age": 32
});

myarray[0]["Address"] = "123 Some St.";

console.log( JSON.stringify( myarray, null, 2 ) );
Paul Roub
  • 36,322
  • 27
  • 84
  • 93
9

Along with a single value like

myarray[0].address = "your address";

You could even add a nested property on the fly as below:

myarray[0].address = { presentAddress: "my present address..." };

and get the value as myarray[0].address.presentAddress;.

Lauren Yim
  • 12,700
  • 2
  • 32
  • 59
Rashedul.Rubel
  • 3,446
  • 25
  • 36