I am confused my code is'nt working

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

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

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


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

 return collection;
}

updateRecords(5439, "artist", "ABBA");

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36.

Challenge: Record Collection

Link to the challenge:

You’d better tell us what’s really wrong.

here you are saying "if prop equal "tracks" OR if the object has the "tracks" property, then set the propery to an empty array. If this statement is the one executed, the following ones are not executed, with result that you are just adding/replacing aproperty and giving it a value of an empty array, deleting anything that was already there