Created
November 18, 2016 06:14
-
-
Save sebshub/2bf0350c936c61e6c7cfcebb4d3d04b6 to your computer and use it in GitHub Desktop.
Record Collection JSON exercise for handling incomplete data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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)); | |
function updateRecords(id, prop, value) { | |
if (!value) { | |
delete collection[id][prop]; | |
return collection; | |
} | |
if (prop !== "tracks") { | |
collection[id][prop] = value; | |
} else { | |
if (!collection[id].hasOwnProperty("tracks")) collection[id].tracks = []; | |
collection[id].tracks.push(value); | |
} | |
return collection; | |
} | |
// Alter values below to test your code | |
updateRecords(5439, "artist", "ABBA"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment