Record Collection Very Basic Syntax

Hey all,

I loosely grasp the way the algorithm works, but I’m just having a particular issue understanding how the records[id][prop] works.

I feel like I missed the point on an important lesson before and the Basic Javascript course is so huge it makes it difficult to figure out which lesson to go back to to understand what I’m missing.

My confusion lies with why you put the parameters in that order - my mind is telling me that records[id][prop] is making records call to a nested array, but I know that id and prop are both parameters, just like records. Records doesn’t seem to be defined in the setup code so I don’t get what’s happening here. Help?

(Sorry if this is nonsense).


// 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 (prop !== 'tracks' && value !== "") {
  records[id][prop] = value;

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

} else if (prop === tracks && value !== "") {
  tracks[] = value();

} else if (value === "") {
  delete 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/97.0.4692.71 Safari/537.36

Challenge: Record Collection

Link to the challenge:

“records” is whatever argument is given to the function on the first spot. Then id, prop, value.
As you can see in the function call at the bottom, it’s called via updateRecords(recordCollection, 5439, 'artist', 'ABBA'); → so within the function “records” refers to “recordCollection”, “id” to 5439 and so on…

As for the reason why this order, just look into recordCollection. First it’s got the ID, nested within are props and then their values.
Hence it’s adresses as records[id][prop] in the function, which for the example would be recordCollection[5439]['artist'] - which at the beginning doesn’t exist, but get’s updated to “ABBA”. You could also console.log(recordCollection[5439]) before and after the call to see the update.

1 Like

records looks like recordsCollection.

The properties of the recordsCollection is given by id