Stuck on this Record Collection Challenge!

Tell us what’s happening:

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

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

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

if (value !== "") {
  delete collection[id][prop];
} else {
  
  console.log(collection);
  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/70.0.3538.110 Safari/537.36.

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

I don’t think the specification for this assignment is written very well. Read carefully the tests below, you would see that, if the property is not present, you must add it for the respective object, not only add it when the property is “tracks”. Also, the way your code is written now, you do not return the collection in most cases because the else blocks executes only when the if block fails (i.e. value === “”).