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