Basic JavaScript - Record Collection

Tell us what’s happening:
Describe your issue in detail here.

I passed the test following Jessica Wilkins’ instructions at this link: https://www.freecodecamp.org/news/how-to-solve/
I understood the whole structure to solve, but I’m in doubt because the records reference is used in records[id][prop] and not recordCollection…
i mean, it should be recordCollection[id][prop] insted, ins’t it ?

  **Your code so far**
// Configuração
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'
}
};

// Altere apenas o código abaixo desta linha
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 !== "") {
  records[id][prop].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; rv:103.0) Gecko/20100101 Firefox/103.0

Challenge: Basic JavaScript - Record Collection

Link to the challenge:

No. That would make your function only work for a single record collection object.

1 Like

Humm, but i still don’t understand how the “function updateRecords (records, id, prop, value)” acess the const recordCollection, cause the name is diferent
records… in the code it is records[id][prop] = [value]

You can think of the arguments of a function like a copy of the value you pass in, and that copy naturally has another name than the original (it may have the same name, if you name the parameter the same, but that’s coincidence.

[You can work with global variables, but then the function is not very reusable, you can read further here: Var, Let, and Const – What's the Difference? ]

Edit: Technically when working on records, you directly change the properties of the gobal recordsCollection, the same with an array as function argument. Therefore be careful which operation you do on these objects if you don’t want to modify the original object