Tell us what’s happening:
I need some help with my script down below for this challenge, I don’t know why it’s not working, here’s the results of the test:
// running tests
After updateRecords(5439, “artist”, “ABBA”), artist should be “ABBA”
Cannot read property ‘pop’ of undefined
After updateRecords(2548, “artist”, “”), artist should not be set
After updateRecords(1245, “tracks”, “Addicted to Love”), tracks should have “Addicted to Love” as the last element.
After updateRecords(2548, “tracks”, “”), tracks should not be set
After updateRecords(1245, “album”, “Riptide”), album should be “Riptide”
// tests completed
Thank you.
Your code so far
js
// 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 (collection.hasOwnProperty(id) === false && value ==! "") {
if (prop ==! "tracks"){
collection.id= {prop: value};
} else {
collection.id= {prop: []};
collection.id.prop.push(value);
}
} else if (collection.hasOwnProperty(id) === true) {
if (id.hasOwnProperty(prop) === false) {
if (value ==! "") {
if (prop ==! "tracks"){
collection.id.prop= value;
} else {
collection.id.prop= [];
collection.id.prop.push(value);
}
return collection;
}
} else {
if (value === "") {
if (prop ==! "tracks") {
delete collection.id.prop;
}
else if (prop === "tracks" && collection.id.tracks === []) {
delete collection.id.tracks;
}
return collection;
} else {
if (prop ==! "tracks"){
collection.id.prop= value;
} else {
collection.id.prop.push(value);
}
return collection;
}
}
}
return collection;
}
// Alter values below to test your code
updateRecords(1245, "tracks", "ain't no sunshine");
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript/record-collection/