To add only one address
property to your player
object do like
player.address = "Some Street 32";
If you want to add 4 "Address fields"/ properties to your player
object:
var player={
name: 'the Player',
age: 33
};
for (i = 0; i < 4; i++) {
player["address" + i] = "empty";
}
console.log( player );
[object Object] {
address0: "empty",
address1: "empty",
address2: "empty",
address3: "empty",
age: 33,
name: "the Player"
}
Though I see no use-case of pre-creating properties that you'll not use in the future. Rather create an Array of addresses (if you need to store more addresses) like:
player = {
addresses = [],
name = "the Player"
}
than whenever you need to add a new address to the Player do like:
player.addresses.push("Street 32");
player.addresses.push("Newstreet 43");
console.log( player.addresses ); // ["Street 32", "Newstreet 43"]
console.log( player.addresses[0] ); // "Street 32"
Than whenever you want to get all addresses you can loop the player.addresses
or if you want to get only the newest address (the latest one in Array) you simply do:
var playerLatestAddress = player.addresses.slice(-1).pop(); // "MyNew, Street 43"
Instead your code currently does:
var addr = ""; // Create an empty string to concatenate to
for (i = 0; i < 4; i++) { // four times....
// add to `addr` a value from an existent `player.addressN` property
addr += player["address" + i] + '\n'; // ERROR: player.address0 is undefined
}
therefore if you test your console.log( addr )
you'll get:
"undefined
undefined
undefined
undefined
"