Tell us what’s happening:
Hello,
I do not know what is wrong with my code. Nothing is being outputted and I want to understand what exactly happened. When I tried using window.alert to debug, I could not see the popup.
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"
}
};
// Only change code below this line
function updateRecords(id, prop, value) {
if (value === " ") {
delete collection[id[prop]];
} else if (prop === "tracks") {
if (tracks !== " "){
collection[id[prop]].push(value);
} else {
collection[id[prop]].push([tracks]);
collection[id[prop[tracks]]].push(value);
}
}
window.alert (collection);
return collection;
}
updateRecords(5439, "artist", "ABBA");
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36.
Why are you checking if value is a space character in the following line?
if (value === " ") {
In the following line, tracks is not a variable, so your code errors out (see browser console). Even if tracks was a variable, why are you comparing it to a space character?
if (tracks !== " "){
In the following line, your brackets are off. You are doing something similar with the others.
Wait, I figured it out. Google was weirding out with Javascript and said my function was undefined. Also, I was trying to compare it to empty, not space.
You had several syntax problems here. [id[prop]] is kind of typo. Maybe you mean [id][prop].
next, when the property 'tracks' does not exist, then you can add a new property with dot notation and assign its value to an empty array.