Record challenge update

Update: after understanding better this challenge, I wrote my insights and learnings here: https://dev.to/karem1986/manipulating-complex-json-in-javascript-1mck
Hope it helps others! x

Hi, I have worked on this challenge and understand the logic of it but still, I don’t get how to meet 3 conditions left to pass it.
In the video, it is not exactly the same.

My code below:
function updateRecords(id, prop, value) {

if (prop === “tracks” && collection[id][“track”] === undefined) {

collection[id]["tracks"] = [];

} if (prop === “tracks” && value !== “”) {

collection[id]["tracks"].push(value);

} if (value === “”) {

delete collection[id][prop];

}

else { collection[id][prop] = value; }

return collection;

}

console.log(updateRecords(5439, “artist”, “ABBA”));

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

return collection;
}

console.log(updateRecords(5439, "artist", "ABBA"));
console.log(updateRecords(5439, "tracks", "Take a Chance on Me"));



Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36.

Challenge: Record Collection

Link to the challenge:

Two things - you have a typo in first if in second condition. Now take a closer look at other conditions and go step-by-step through the case with adding to tracks. New track is pushed to the tracks array and what happens later?

1 Like

Hello there,

I think you are confusing yourself with:

if (condition) {

} else if (condition) {

}

and:

if (condition) {

}
if (condition) {

} else {

}

What do you mean by "New track is pushed to the tracks array and what happens later?
Thanks for the help!

This line adds track to tracks,
collection[id]["tracks"].push(value);
Now go further, step by step and notice what function still does after that.

1 Like

paste your code here and see what happens:

http://pythontutor.com/javascript.html#mode=edit

1 Like

Thank you sanity.

I realized that the function pushes a new value at the end of the string.
I also realized that the order of the conditions was wrong, I had 3 “If” statements instead of a main condition if, else if and an else.
I was confusing the computer so it was not executing sequencially all of my instructions, my bad, but I think I have understood better this challenge.
Thanks so much for your help!