Why wont collection[id][prop] === null work?

Tell us what’s happening:
I know the solution. The code runs when i use !collection[id].hasOwnProperty(“tracks”). I might be wrong but isn’t collection[id][prop] === null the same thing? I tried both and I just want to know why this doesn’t work. Thank you.

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

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:

An unset property on an object is undefined, not null.

2 Likes

Thanks. was confused with undefined and null. i got this but somehow i still am confused about null and undefined. But cheers.