Cannot read property 'push' of undefined

Hello,

I am trying to solve Basic Javascript: Record Collection and came across this strange problem, I keep getting Cannot read property ‘push’ of undefined. I’ve annotated the area with a single line comment. I’d appreciate some out of the zone/box insights as I cannot figure this one out. Also, refactors suggestions are highly appreciated. This is my code snippet:

// Setup
var collection = {
    "2548": {
      "album": "Slippery When Wet",
      "artist": "Bon Jovi",
      "tracks": [ 
        "Let It Rock", 
        "You Give Love a Bad Name" 
      ]
    },
    "2468": {
      "album": "1999",
      "artist": "Prince",
      "tracks": [ 
        "1999", 
        "Little Red Corvette" 
      ]
    },
    "1245": {
      "artist": "Robert Palmer",
      "tracks": [ ]
    },
    "5439": {
      "album": "ABBA Gold"
    }
};
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));

// Only change code below this line
function updateRecords(id, prop, value) {

  if (value == "") {
    delete collection[id][prop];
  }

  if (prop !== "tracks" && value !== "") {
    collection[id][prop] = value;
  }

  if (prop == "tracks") {
    if (!collection[id].hasOwnProperty("tracks")) {
      let tracks = [];
      tracks.push(value);
      collection[id] = tracks;
    }

    if (value !== "") {
      collection[id][prop].push(value);
    } // this is where it triggers, but the thing is, I should be able to call the method.
  }

  return collection;
}

// Alter values below to test your code
updateRecords(5439, "tracks", "Take a chance on me");

Screenshot of what I see:

Thanks for the prompt reply Randell. I forgot to add the [props] within that line. I didn’t know about ask for help working like that, so that’s good to know too.

1 Like