I’ve reached the infamous record collection challenge. I’ve really struggled with this. It’s knocked me back by a few weeks as I’ve been trying to wrap my head around it.
I’ve got this far, but I’m not quite sure how to remove the array markings from the artist ‘ABBA’. I’m sure this is what they mean when they say ‘should be a string’
Any help is really massively appreciated!
Code so far
// Setup
const recordCollection = {
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(records, id, prop, value) {
if (!value) {
delete records[id][prop];
}
else if (!records[id].hasOwnProperty('tracks')) {
records[id][prop] = [value];
}
else if (prop !== 'tracks') {
records[id][prop] = value;
}
else {
records[id][prop].push(value);
}
return records;
}
updateRecords(recordCollection, 5439, 'artist', 'ABBA');
updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")
updateRecords(recordCollection, 2548, "artist", "")
updateRecords(recordCollection, 1245, "tracks", "Addicted to Love")
updateRecords(recordCollection, 2468, "tracks", "Free")
updateRecords(recordCollection, 2548, "tracks", "")
updateRecords(recordCollection, 1245, "albumTitle", "Riptide")
console.log(JSON.stringify(recordCollection))
Challenge: Record Collection