Hello all. I know this is a challenge a lot of people come unstuck on. Hopefully you can point out what I’ve messed up.
All of the tests have passed except for this one…
After updateRecords(5439, "tracks", "Take a Chance on Me")
, tracks
should have "Take a Chance on Me"
as the last element.
Here is my rough code…
// 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"
}
};
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));
// Only change code below this line
function updateRecords(id, prop, value) {
if (prop !== "tracks" && value != "") {
collection[id][prop] = value;
} else if (prop == "tracks" && value != "") {
collection[id][prop].push(value);
} else if (value == "") {
delete collection[id][prop];
}
return collection;
}
// Alter values below to test your code
updateRecords(5439, "artist", "ABBA");
I thought my first else if
statement would have worked for this outstanding test. In my mind that statement should take the track title and push it to the end of the tracks array.
Any help would be appreciated. Many thanks.