What's wrong with my Record Collection

What's wrong with my Record Collection
0

#1

Tell us what’s happening:
I have now been stock on this now for a couple of hours and have read all the tips in the forum, still it does not pass. what is it that I’m doing wrong?

thanks in advance!

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] = value;
  }
  else if (prop == "tracks" && !collection[id].hasOwnProperty("tracks")){
    collection[id][prop] = [];
    collection[id][prop].push("value");
  }
  else if (prop == "tracks" && value !== "") {
    collection[id][prop].push("value");
  }
  else is (value === ""){
    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_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36.

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


#2

I don’t know if that’s all the problem, but this is the first thing I notice: in the first not equal operator you have three = instead of two.

Another typo: is instead of if


#3

One thing you could do to know more about what’s wrong with any javascript code like this is try running it on a node console. Copy the code into a file and then in a terminal: node file.js, then if there many mistakes are spotted by node itself, see:
imagen


#4

thanks for the noticing the typos. I corrected them still it doesn’t go through :frowning:
still don’t know that the problem is .

do I need to download the node console?


#5

I assume after fixing the problems noted before, you are only failing the following two tests:

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

  2. After updateRecords(1245, “tracks”, “Addicted to Love”), tracks should have “Addicted to Love” as the last element.

The problem is the following line (used in two places in your solution):

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

Look carefully and think about what you are actually pushing into the tracks array with this line. If you are not sure what you are pushing, check it by putting a console.log(collection[id].tracks) after each of these lines and then use your browser’s console (Ctrl+Shft+J in Chrome) to see what is being pushed.


#6

No, no need for the node console, it was just a suggestion for exploring the program.