Basic JavaScript - Record Collection

Tell us what’s happening:
Describe your issue in detail here.
I don’t understand where the “records” is coming from.

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) {
  return records;

updateRecords(recordCollection, 5439, 'artist', 'ABBA');

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36

Challenge: Basic JavaScript - Record Collection

Link to the challenge:

records is a function parameter, just like id, prop, and value are.

Function parameters are placeholder variables in that they hold the values that are passed to them when the function is called with arguments. Inside the function, they are just regular variables you can reference.

If I make the call updateRecords(recordCollection, 5439, 'artist', 'ABBA'), then recordCollection gets passed to records inside the function. They are the same thing. 5439 gets passed to id, 'artist' gets passed to prop, and 'ABBA' gets passed to value. You have already seen how this works in several previous challenges.

1 Like

I dont understand the solution, nor the explanations coming with it.

function updateRecords(records, id, prop, value) {
if (prop !== “tracks” && value !== “”) {
records[id][prop] = value;
} else if (prop === “tracks” && value !== “” && records[id].hasOwnProperty(“tracks”) === false) {
records[id][prop] = [value];
} else if (prop === “tracks” && value !== “”) {
} else if (value === “”) {
delete records[id][prop];
return records;

Did you solve the challenge without looking at the solutions first?

No i did not i am stuck

You should only ever look at the solutions after you have created your own solution first.

What code did you try to write? What did you get stuck on?

We are always here to answer questions about challenges and code you have written and guide you to a solution.

I suggest reading through the challenge instructions and ignore the solution you found for now and try to solve it on your own. If you get stuck, reply to this thread with the code you have written and explain in detail what you do not understand.

I am not able to solve it at all. I don’t understand why put value !== “” for * If prop is tracks but the album doesn’t have a tracks property, create an empty array and add value to it.

You can delete this post, I’ll get answers from elsewhere. Thanks Randell!