Basic JavaScript - Record Collection

Hi, I honestly have no idea what’s wrong with my code, I only know that I got the first if statement right apparently, but I don’t understand why I get errors yet

  **Your code so far**
// Setup
const recordCollection = {
2548: {
  albumTitle: 'Slippery When Wet',
  artist: 'Bon Jovi',
  tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
  albumTitle: '1999',
  artist: 'Prince',
  tracks: ['1999', 'Little Red Corvette']
},
1245: {
  artist: 'Robert Palmer',
  tracks: []
},
5439: {
  albumTitle: 'ABBA Gold'
}
};

// Only change code below this line
function updateRecords(records, id, prop, value) {
if ( value != '' && prop !== records[id]["tracks"]){// And prop is not tracks
  records[id][prop] = value;
}
else if (records[id].hasOwnProperty("tracks") === false && prop == records[id]["tracks"]) //prop is tracks but records doesn't have tracks
{
  const tracks = [];
  records[id].push(tracks);
  records[id]['tracks'].push(value);
}
else if (prop == records[id]["tracks"] && value !== '')
{
  records[id]['tracks'].push(value);
  //add value to the end of album's existing array
}
else if (value === '')
{
  // delete prop
  records[id].shift();
}

return records;
}

updateRecords(recordCollection, 5439, 'artist', 'ABBA');
  **Your browser information:**

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0

Challenge: Basic JavaScript - Record Collection

Link to the challenge:

What is it you believe prop == records[id]["tracks"] is doing? I’d suggest you log that out at the top of the function and see if it is ever true.

This records[id] is an object, not an array (you are calling an array method on it). You are also asked to remove the property, not the object.

1 Like