Record Collection-what is wrong with it?

Tell us what’s happening:

Your code so far

// Setup
var collection = {
    "2548": {
      "album": "Slippery When Wet",
      "artist": "Bon Jovi",
      "tracks": [ 
        "Let It Rock", 
        "You Give Love a Bad Name" 
      ]
    },
    "2468": {
      "album": "1999",
      "artist": "Prince",
      "tracks": [ 
        "1999", 
        "Little Red Corvette" 
      ]
    },
    "1245": {
      "artist": "Robert Palmer",
      "tracks": [ ]
    },
    "5439": {
      "album": "ABBA Gold"
    }
};
// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));

// Only change code below this line
function updateRecords(id, prop, value) {
  if (value === '') {
    delete collection[id][prop];
  } else if (prop !== 'tracks') {
    collection[id][prop] = value;
  } else {
    collection[id][prop].push(value);
  
  return collection;
}
}

// Alter values below to test your code
update(5439, "artist", "ABBA");

Your browser information:

Your Browser User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299.

Link to the challenge:
https://www.freecodecamp.org/challenges/record-collection

1 Like

You didn’t put anything in the “Tell us what’s happening” section. Please tell us what is going on and what steps you have tried to fix it.

In your last else statement collection[id][prop].push(value); cannot push the value to the property because for the test you should be calling updateRecords(5439, "artist", "ABBA"); , that property doesn’t exist for that id.

If you console.log(collection[id][prop]) in the updateRecords() function you will see it returns undefined.

The instructions address this here:

“If prop is ‘tracks’ but the album doesn’t have a “tracks” property, create an empty array before adding the new value to the album’s corresponding property.”

1 Like

Oh,sorry

// Setup
var collection = {
“2548”: {
“album”: “Slippery When Wet”,
“artist”: “Bon Jovi”,
“tracks”: [
“Let It Rock”,
“You Give Love a Bad Name”
]
},
“2468”: {
“album”: “1999”,
“artist”: “Prince”,
“tracks”: [
“1999”,
“Little Red Corvette”
]
},
“1245”: {
“artist”: “Robert Palmer”,
“tracks”: [ ]
},
“5439”: {
“album”: “ABBA Gold”
}
};

// Keep a copy of the collection for tests
var collectionCopy = JSON.parse(JSON.stringify(collection));

// Only change code below this line
function updateRecords(id, prop, value) {
if (value === ‘’) {
delete collection[id][prop];
} else if (prop !== ‘tracks’) {
collection[id][prop] = value;
} else {
collection[id][prop].push(value);

return collection;
}
}

// Alter values below to test your code
update(5439, “artist”, “ABBA”);

1 Like

You still haven’t described your problem at all. You haven’t told us what you need help with.

It says,update is not defined

1 Like

You’re calling a function update but the name of the function that you wrote is updateRecords.

I have deleted updaterecords but it still does not pass

1 Like