Tell us what’s happening:
I am having difficulty understanding some of the code in the solution. Below is just the solution copied and pasted in. Can someone explain to me how the connection is made between the “id”, “prop” and “value” in updateRecords(id, prop, value) and the properties and values in the objects e.g. “2548”, “artist” and “Bon Jovi” when there were no variables id, prop and value defined and connected to them?
Also, I am having difficulty understanding this part of the code; what exactly does the part in bold mean if you had to translate from code to english :
if (prop===“tracks” && value !==""){
if (collection[id][prop]){
collection[id][prop].push(value);
}
else {
collection[id][prop]=[value];
Your code so far
// 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 !==""){
if (collection[id][prop]){
collection[id][prop].push(value);
}
else {
collection[id][prop]=[value];
}
} else if (value!==""){
collection[id][prop] = value;
} else {
delete collection[id][prop];
}
return collection;
}
// Alter values below to test your code
updateRecords(5439, "artist", "ABBA");
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:64.0) Gecko/20100101 Firefox/64.0
.