Why doesn't the final else statement here work in adding a new property and value to the object?

Why doesn’t the final else statement - else {collection[id][prop]=value} - here work in adding a new property and value to the object?

Every other test is passed, except:
’ After updateRecords(5439, “tracks”, “Take a Chance on Me”), tracks should have “Take a Chance on Me” as the last element.

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


else {collection[id][prop]=value

}

return collection;
}

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

Your browser information:

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

Challenge: Record Collection

Link to the challenge:

What’s that extra { doing there? I suspect it’s a typo.