Basic JavaScript - Record Collection

Tell us what’s happening:
The other test are passed but I’m failing these two. I don’t know why.
After updateRecords(recordCollection, 2548, "artist", "") , artist should not be set
and
After updateRecords(recordCollection, 2548, "tracks", "") , tracks should not be set

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

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/103.0.0.0 Safari/537.36

Challenge: Basic JavaScript - Record Collection

Link to the challenge:

One of the challenge’s rule is:

  • If value is an empty string, delete the given prop property from the album.

You are not doing this.

That is why when updateRecords(recordCollection, 2548, "artist", "") is called, the return value is:

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

instead of the correct value:

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

You seem to be confused on what an empty string looks like:

`" "` is not an empty string.  It is a string with a single space character.

And FYI, records[id][prop] != "tracks"; is not doing anything for you here and can be deleted.

Ok thank you. I will do this now

Thank you so much. it worked

"" and " " are very different

This line does not do anything.

Edit, woops, didn’t see the other replies

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