Record Collection Confusion

Tell us what’s happening:

Hello I just want to know what’s happening with this code


 else if (prop === "tracks") {
  collection[id][prop] =  collection[id][prop] || [];

what does it do? to be exactly straightforward what does collection[id][prop] = collection[id][prop] || []; do?

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



return collection;
}

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

console.log(updateRecords(1245, "tracks", "Addicted to Love"));

Your browser information:

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

Challenge: Record Collection

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

If collection[id][prop] already has a truthy value (for example if it already has an array), it effectively does nothing. Otherwise it assigns an empty array to collection[id][prop]

1 Like

But truthy You mean something like if tracks = [] ? Sorry I’m really confused is there any way to visualize this?

false, 0, 0n, "" (empty string), undefined, null and NaN are falsey values, ie they coerce to false.

All other values are truthy, ie they coerce to true.

This is important to understand JavaScript: it is covered earlier in the course, but as a refresher:

1 Like

thank you! :slight_smile:

1 Like