Tell us what’s happening:
Why does this not work, I know its different to the solution code, but it is not creating an empty array to complete the solution. The only thing missing is if the property “tracks” doesn’t exist in an object, apparently my code is not creating a new property, “tracks”, and setting it to be an empty array. i hope that makes sense
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] != true){
collection[id][prop] = [];
}}
if (prop == "tracks" && value != "") {
if (collection[id][prop]){
collection[id][prop].push(value)
} else if (prop !== "tracks" && value != ""){
collection[id][prop] = value;
} else if (value == "") {
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 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36
.