I dont know what i did

Tell us what’s happening:
so i was doing this challenge and have no idea how i got it right. at first i built what i thought they asked for but it kept on failing, then while playing around with the code it was accepted . the problem is now i don’t know how to read my own mess. it works, but how?

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

 return collection;
}
console.log(
updateRecords(5439, "tracks", "Take a Chance on Me"));

Your browser information:

User Agent is: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0.

Challenge: Record Collection

Link to the challenge:

what do you not understand of your code?

so if i remove the console.log at the bottom then the code does not work, or even if i change the updateRecords() values it does not work.why is this?

do you mean that if you remove the function call then the code doesn’t pass the tests?

can you describe the expected behavrious and what happens instead?

that is correct. i don’t know why it happens.

and in that case, what do the tests say?

I imagine it is because if the object doesn’t have a tracks property you just create an empty array and don’t add the value to the array