Basic JavaScript - Record Collection - Where did I do wrong?

Hi everyone,
I am a beginner and I am working on this challenge!
Sorry I am not allowed yet to post link on here but you can type in search
“Freecodecamp, basic-javascript, record-collection”
Here below is my code but it did not work:

function updateRecords(id, prop, value) {
  if (value!==""){
    if (prop==="tracks") {
    if (collection[id][prop]){
    } else {
  }} else {
    collection[id][prop]= value;
  }} else { 
    delete collection[id][prop];}
  return collection[id];

When I ran the code it kept saying:

Cannot read property ‘artist’ of undefined

Cannot read property ‘tracks’ of undefined
Would you please help explaining to me where did I do wrong and why?
Thank you!!!

Hello camper , the first test says :
If prop isn’t "tracks" and value isn’t empty ( "" ), update or set the value for that record album’s property.
so you have to use logical operator && (wich means and ) so you can type :
if (prop !== “tracks” && value != “”){ some code} .

Thanks M! May I ask does my code wrong in term of logic? coz I am still a bit confused!
If the requirement is if A=B && C=D => x else if A=B && C!=D => y
Can’t I check if A=B first then continue to check C rather than checking A & C at the same time?

if (something is true) { some code}; // this is the first condition
else if ( something is true) {some code} // if the first condition is false run this second condition
you can type as mush as you need of else if statement
else { some code } // if all the conditions are false . use this condition wich is the last .


I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make easier to read.

See this post to find the backtick on your keyboard. The “preformatted text” tool in the editor (</>) will also add backticks around text.

Note: Backticks are not single quotes.


1 Like

Thank you! Sorry about that!