What is the easiest was to populate an array with a large number of objects created with a constructor?
I have a constructor function than makes TV and movie objects:
function Media(name, boxCover) {
this.name = name;
this.boxCover = boxCover;
};
I am making many objects that I want to put into an array. This does not work:
var table = [
var avengers = new Media("avengers",'../assets/boxcovers/avengers.jpg');
var blade_runner = new Media("blade_runner",'../assets/boxcovers/blade_runner.jpg');
var brave = new Media("brave",'../assets/boxcovers/brave.jpg');
var catching_fire = new Media("catching_fire",'../assets/boxcovers/catching_fire.jpg');
var django = new Media("django",'../assets/boxcovers/django.jpg');
var finding_nemo = new Media("finding_nemo",'../assets/boxcovers/finding_nemo.jpg');
];
I also tried putting table.push(
at the beginning of each line. Do I really need to list each object again in the array like this or I can save the duplicate effort:
table = [avengers, blade_runner, etc.
The syntax for this would be
var table = {
mykey: myproperty,
mykey2: myproperty2
};
If you want your variable to be an object, that is you can access properties by calling f.e table.avengers
, your declaration should look like:
var table = {
avengers: new Media("avengers",'../assets/boxcovers/avengers.jpg'),
blade_runner: new Media("blade_runner",'../assets/boxcovers/blade_runner.jpg'),
brave: new Media("brave",'../assets/boxcovers/brave.jpg')
//... and so on and so forth
};
If you only want to be able to loop through them, you can create it as an array:
var table = [
new Media("avengers",'../assets/boxcovers/avengers.jpg'),
new Media("blade_runner",'../assets/boxcovers/blade_runner.jpg'),
new Media("brave",'../assets/boxcovers/brave.jpg')
//... and so on and so forth
];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With