Record Collection JavaScript

I’m stucked in this challage. Can someone explain what is wrong with my code ?

function updateRecords(records, id, prop, value) {

if(prop !== "tracks" && value !="")


recordCollection[id][prop] = value


else if(prop === "tracks" && recordCollection[id][prop] === undefined)


recordCollection[id][prop] = [value]


else if(prop === "tracks" && value != "")




else if(value === "")


delete recordCollection[id][prop]


return records;


please post a link to the challenge

I’ve edited your code for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (').

You should not be updating the global variable recordCollection. Instead, update the object passed into the function represented by the records parameter. That will get you a few tests passing. For the other tests, you need to rethink the logic of your first if statement.

For example, you are failing the second test (below)

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

because your if statement code block executes. Why? Because prop is not an empty string AND value is not an empty string.

A post was split to a new topic: JS Record collection