Record collection assignment

Tell us what’s happening:
Im attempting this lesson and cant seem to get it to satisfy the test system

When I try it out with the ocnsole logs it seems like im getting the correct answers so im not sure.
I am visually impaired so maybe im missing some formating issue?

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"
}
};

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


// Alter values below to test your code
updateRecords(5439, "tracks", 'stuff');

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0.

Challenge: Record Collection

Link to the challenge:
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/record-collection

you are missing a few things here:
when the tracks property doesn’t exist in the array, you are assigning value to it, but in that way the property value is not an array - you should be assigning an array containing value instead.

second thing is that when instead the object has the tracks property, the things are done correctly but you are missing returning of colletion object (if you want you could also avoid having so many return statements as they do always the same thing and just have a single return statement as last line of the function (but to do this you would need to make slight changes to the part about tracks)

this last part about the return statement is if you want to implement DRY code (DRY stand for Don’t Repeat Yourself and it is considered a best practice)

1 Like

Thank you, totally missed the mismatch data type.

Thanks for the return comment, cleaned it up alot,

1 Like