Difficulty W/ Record Collection

Tell us what’s happening:

Been stuck trying to solve this assignment for a couple hours now. Can anyone give me a hint on where I’m going wrong? Wondering if I should have tried a switch/case based method of solution instead.

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 != "") {
	collections[id][prop].push(value);
} else if (prop === "tracks" && collection[id][prop] === undefined) {
	collections[id][prop]=[value];
} else if (prop != "tracks" && value != "") {
	collection[id][prop] = value;
} else if (value === "") {
	delete collection[id][prop]
}
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.198 Safari/537.36.

Challenge: Record Collection

Link to the challenge:

Do these two clauses occur in the order you would like?

Also, you can simplify your logic if you check for a value of “” first.

Unsure to be honest. The first if/else statement is saying if the property is “tracks” and the value is not an empty string, then we will add the value to the end of the data. While the second if/else statement is saying that if the property is “tracks” but the album doesn’t have a tracks property, we’re making an new empty array…

So in my mind, I feel like the order is currently correct, but since you’re asking me to review it again, I feel like it must not be…

The first clause occurs first.

So, if your prop is ‘tracks’ and the value is not “”, then you push the value onto 'collection[id][prop]`.

But then you check if collection[id][prop] is defined…

The if statements occur in the order written. What happens if the array does not exist?


Also, you should be using object instead of collection.