Record Collection test Issue

Record Collection test Issue
0.0 0

#1

Tell us what’s happening:
My code does what the challenges wanted me to do but it won’t let me pass the challenges. The test keeps telling me that the empty string value should not be set but when i tried my code on my local server using chrome dev tools as my test tool, it works. Empty value string is not set somewhere in the collection object. What do you guys think is wrong?

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) {
  const idStr = `${id}`
  for(var key in collection){
    if(idStr === key){
      if(!collection[key][prop] && prop !== "tracks" && value !== ""){
        collection[key][prop] = value
      } else if(!collection[key][prop] && prop === "tracks" && value !== ""){
        collection[key][prop] = [];
        collection[key][prop].push(value);
      } else if(collection[key][prop] && prop === "tracks" && value !== ""){
        if(collection[key][prop]){
          collection[key][prop].push(value)
        } else {
          collection[key][prop] = []
          collection[key][prop].push(value);
        }
      } else if(collection[key][prop] && prop !== "tracks" && value !== ""){
        collection[key][prop] = value;
      }
    }
  }
console.log(collection);
return collection
}

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

Your browser information:

User Agent is: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36.

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


#2

Just off the top of my head, did you mean to use backticks in:

const idStr = `${id}`

#3

If value is an empty string, the requirement isn’t that your function do nothing. It should delete the property.