Basic JavaScript: Record Collection not creating track

Tell us what’s happening:
After updateRecords(5439, "tracks", "Take a Chance on Me") , tracks should have "Take a Chance on Me" as the last element.
all other points are correct but I’m unsure why isn’t working

Your code so far
function updateRecords(id, prop, value) {
if (value === “”) {
delete collection[id][prop];
} else if (prop === “tracks”) {
if (collection[id].hasOwnProperty(prop) === true) {
collection[id][prop].push(value);
} else {
;
collection[id][prop].push(value);
}
} else {
collection[id][prop] = value;
}

return collection;
}


// 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 (collection[id].hasOwnProperty(prop) === true) {
     collection[id][prop].push(value);
   } else { 
      [];
      collection[id][prop].push(value);
   }
} else {
  collection[id][prop] = value;
}   


return collection;
}

updateRecords(5439, "artist", "ABBA");

Your browser information:

User Agent is: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0.

Challenge: Record Collection

Link to the challenge:

1 Like

Take a look in the else block of your hasOwnProperty if statement - [] doesn’t do anything. But maybe, if you set the tracks property to that, and then push…

you have [] on a line on its own, maybe you want to assign that to something… ?

Thank you for your help been trying to figure this out for over an hour :slight_smile:

1 Like

Fresh eyes often help. :grin: