Update Record Collection

Tell us what’s happening:
Describe your issue in detail here.
I have been stuck on this problem for a while now. Not exactly sure where I went wrong with the code.

  **Your code so far**

// Setup
var 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 (prop!=="tracks" && value!==""){
  records[id][prop]=value;
}
else if (prop=="tracks" && records[id].hasOwnProperty("tracks")==false){
  tracks=[];
  tracks.push(value);
}
else if (prop=="tracks" && value==""){
  records[id][tracks].push(value);
}
 else if (value==""){
   delete records[id][prop];
 }

return records;
}

updateRecords(recordCollection, 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/91.0.4472.106 Safari/537.36

Challenge: Record Collection

Link to the challenge:

what’s tracks? you can’t use a variable without defining it, that errors out and stop code execution

In the first line, I create an empty array called tracks and add a value to it.

In the second line I edited the code to add a value to an existing album track array

else if (prop=="tracks" && value==""){
    records[id][prop].push(value);
  }

However, this is still not working.

Hi Lizaste,

Do you mean this line?

tracks=[];

The tracks array should be inside the record. Your line is creating a (global) variable in the function. Can you reach the solution with this tip?

the “tracks” is already defined within the object, you can remove it. And you have to access the records to add the “tracks” like this - records[id][prop]. hope that helps

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.