Record Collection \\

Tell us what’s happening:

Hi all - tried to post this on the direct link for this problem but was unable to add comments so posting here. Can someone take a look at this and help me understand why it does not compute? I’m still getting errors and need to understand why this will not work.

Thank you!

  • Charlie

Your code so far

function updateRecords(id, prop, value) {

if (value === “”) {
delete collection.id.prop;
}
else if (prop != “tracks” && value != “”) {
collection.id.prop = value;
}
else if (prop == “tracks” && collection.id.tracks == undefined) {
collection.id.prop = ;
}
else if (prop == “tracks” && value != “”) {
collection.id.prop.push(value);
}

return collection;
}


// 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 (value === "") {
  delete collection.id.prop;
}
else if (prop != "tracks" && value != "") {
  collection.id.prop = value;
}
else if (prop == "tracks" && collection.id.tracks == undefined) {
  collection.id.prop = [];
}
else if (prop == "tracks" && value != "") {
  collection.id.prop.push(value);
}

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.117 Safari/537.36.

Challenge: Record Collection

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

@albersc07 When you use dot notation on an object, you are trying to reference those specific properties. For example, if I have the following object:

var obj = {
  prop1: 'a value',
  prop2: 'another value'
}

I can reference obj.prop1, because “prop1” is an actual property in obj.

In your solution, you reference id and prop as if they are actual propertird of the collection object. There are no properties in the collection object named id, so there could not be an id.prop property either. I suggest reviewing the curriculum challenges which deal with dot notation, bracket notation, and using variables to reference object properties.

1 Like

I suggest you review how to access properties of an object using variables
as this is not doing what you want

1 Like

Thank you Randell - I appreciate your response!