Basic JavaScript - Record Collection

What am I missing here? I have followed the rules given in the prompt but I’m not able to get the required output
Describe your issue in detail here.

Your code so far

// Setup
const recordCollection = {
  2548: {
    albumTitle: 'Slippery When Wet',
    artist: 'Bon Jovi',
    tracks: ['Let It Rock', 'You Give Love a Bad Name']
  },
  2468: {
    albumTitle: '1999',
    artist: 'Prince',
    tracks: ['1999', 'Little Red Corvette']
  },
  1245: {
    artist: 'Robert Palmer',
    tracks: []
  },
  5439: {
    albumTitle: 'ABBA Gold'
  }
};

// Only change code below this line
function updateRecords(records, id, prop, value) {
 if (value === " "){
  delete records[id][prop];}


  else if (prop !=="tracks" && value!=="");{
records[id][prop]= value;}

 if (prop ==="tracks" && value!==""){
   if (records[id].hasOwnProperty("tracks")){
     records[id]["tracks"]= value;
   } 
   records[id]["tracks"].push(value);
 }

   
return records


}

console.log(updateRecords(recordCollection, 5439, 'artist', 'ABBA'));

Your browser information:

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

Challenge: Basic JavaScript - Record Collection

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

This doesn’t “create a new array”.

Note, your formatting is very non-standard, making it harder to read your code and find bugs

The } doesn’t really go on the same line here.

The semicolon here actually breaks your code

I did a reset and attempted it again. Can you please check now? I’m not able to pass 2 criteria - 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.
and
After updateRecords(recordCollection, 2468, "tracks", "Free") , tracks should have the string 1999 as the first element.

// Setup
const recordCollection = {
  2548: {
    albumTitle: 'Slippery When Wet',
    artist: 'Bon Jovi',
    tracks: ['Let It Rock', 'You Give Love a Bad Name']
  },
  2468: {
    albumTitle: '1999',
    artist: 'Prince',
    tracks: ['1999', 'Little Red Corvette']
  },
  1245: {
    artist: 'Robert Palmer',
    tracks: []
  },
  5439: {
    albumTitle: 'ABBA Gold'
  }
};

// Only change code below this line
function updateRecords(records, id, prop, value) {
  
if (value === ""){
  delete records[id][prop]
}

else if (prop!=="tracks" && value !==""){
  records[id][prop] = value 
}

else if (prop==="tracks" && value!==""){
  if (records[id][prop].hasOwnProperty("tracks")===false){
    records[id]["tracks"]= []
  }
  records[id]["tracks"].push(value)
}

return records;
}

updateRecords(recordCollection, 5439, 'artist', 'ABBA');

I don’t think this works as you intend. records[id][prop] isn’t an object

Figured it out. Thank you for your time.

1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.