Syntax problem or logic problem relating to record collections question

Tell us what’s happening:
Below is my code so far for this problem.
When I try and run the code using VSCode it points to prop as undefined, but when i put the id.prop in brackets the code will run
Anyone know why this is?
ID nor prop are arrays
Also would collection.id.prop = ; be correct when assigning a empty array to it if it met the condition?

Your code so far


// 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"
}
};

// Only change code below this line
function updateRecords(id, prop, value) {
 if((prop === "tracks") && (value !== "")){
       collection.id.push(value);
   }
   else if(value !== ""){
       collection.id.prop = [];
   }
  


return collection;
}

// Alter values below to test your code
updateRecords(5439, "artist", "ABBA");

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36.

Challenge: Record Collection

Link to the challenge:
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/record-collection

Do you remember the difference between dot notation and bracket notation? Remember that prop is a variable.

Ah so the parameters in the function are also known as variables?

You aren’t looking for the literal string “prop”. You are looking for some value that was passed into the function. That value is represented by the variable prop.

1 Like

That clears it up thank you both!