Record Collection Failing last test

Tell us what’s happening:

All tests pass except this one and unsure why?

After updateRecords(5439, "tracks", "Take a Chance on Me") , tracks should have "Take a Chance on Me" as the last element.

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

  return collection;
}

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

Your browser information:

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

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

if (prop == “tracks” && value)

What are you looking for here? Is value a booloean?

not exactly sure what you mean by the above? are you saying the issue is here?

You are missing the case in which the property tracks doesn’t exist. If it doesn’t exist you can’t push anything to it

It is like if value is truthy and an empty string is falsy so in this case it translate to if value is not an empty string

That part should work.

Alright, thought it was different from !== “”;
I have worked with C# more and these small things sometines gets me :slight_smile:

1 Like