Confused, delete doesnt seem to be recognized

Tell us what’s happening:
the only parts which aren’t going through correctly involve the
" * If value is an empty string, delete the given prop property from the album."
section of the assignment.
i’ve compared my code to several other people’s who claim their’s is working and it seems i’m using the same notation as them.
Your code so far


// Setup
var collection = {
2548: {
  albumTitle: 'Slippery When Wet',
  artist: 'Bon Jovi',
  tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
  albumTitle: '1999',
  artist: 'Prince',
  tracks: ['1999', 'Little Red Corvette']
},
1245: {
  artist: 'Robert Palmer',
  tracks: []
},
5439: {
  albumTitle: 'ABBA Gold'
}
};

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

console.log(collection);
return collection;

}

updateRecords(collection, 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/86.0.4240.111 Safari/537.36.

Challenge: Record Collection

Link to the challenge:

Your problem is here. What happens when you run

updateRecords(collection, 5439, "tracks", "");

You may want to use else to make your logic simpler.

Also:
Your function takes the argument object, but you are calling collection, which your function should have no way of knowing about.

1 Like

i’m calling collection because when i try to call object instead nothing works at all. all of the sample code in the hint section calls collection instead of object. I agree with you that it shouldn’t know what to do with collection, but it does in all cases except where i’m asking it to delete

Do not use collection. Use object.

You should only look at the top post in the hints; the user supplied code is all for a older version of the challenge.

2 Likes