So i’m just trying to confirm the exclaimation mark infront of the object[id].hasOwnProperty(“tracks”) is there because we want it to return true. But why? I thought it said to only check if the album doesn’t have tracks property which will return false anyway since theres nothing inside tracks. Why then do we need to change it to true?
I don’t think i come across this in the the lesson, this is new to me
**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(prop !== "tracks" && value !== ""){
object[id][prop] = value;
}else if(prop === "tracks" && !object[id].hasOwnProperty("tracks")){
object[id][prop] = [value];
}else if(prop === "tracks" && value !== ""){
object[id][prop].push(value);
}else if(value === ""){
delete object[id][prop];
}
return object;
}
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/88.0.4324.150 Safari/537.36
.
Challenge: Record Collection
Link to the challenge: