Help in Record Collection

Tell us what’s happening:

for updateRecords(5439, “artist”, “ABBA”); console log says the value is ABBA but the system does not pass the test. can somebody tell me where I am going wrong here ?

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 (collection[id].hasOwnProperty(prop) & value!==""){
collection[id][prop].push(value);
}
else{
if(value!=""){
  if(prop==="tracks"){
  collection[id][prop]=[];
  collection[id][prop].push(value);
  }
  else{
      collection[id][prop]=value.toString();
      console.log(collection[id][prop]);       
  }
}
else{
  delete collection[id][prop];
}
}
return collection;
}

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

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36.

Challenge: Record Collection

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

which tests are you not passing?

Unable to pass this test updateRecords(5439, “artist”, “ABBA”); The console log shows ABBA but the test is passed

@ninadfaterpekar
Hi, I can point you to a couple of issues.
On first line of the function you probably need Boolean && and not &.
The main problem though seems to be where you use collection[id][prop].push(value). This is because on some tests you are trying to call push when prop refers to an object (not allowed) while other tests prop will be an array which where push is allowed. Simply changing those lines to collection[id][prop] = value will fix some tests but break others.
Remember on some tests you will be dealing with a prop that points to an array while other tests prop will point to an object.
Hopefully this gives you a starting point.

1 Like