Basic JavaScript - Record Collection

Tell us what’s happening:

Describe your issue in detail here.

Hey Coders. I hope this finds you well. please help it doesn’t wanna pass test number 2 the rest passes just number 2.

Thank you in advance.

Tests

1 Passed:After updateRecords(recordCollection, 5439, "artist", "ABBA"), artist should be the string ABBA

*2 Failed: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.

3 Passed:After updateRecords(recordCollection, 2548, "artist", ""), artist should not be set

4 Passed:After updateRecords(recordCollection, 1245, "tracks", "Addicted to Love"), tracks should have the string Addicted to Love as the last element.

5 Passed:After updateRecords(recordCollection, 2468, "tracks", "Free"), tracks should have the string 1999 as the first element.

6 Passed:After updateRecords(recordCollection, 2548, "tracks", ""), tracks should not be set

7 Passed:After updateRecords(recordCollection, 1245, "albumTitle", "Riptide"), albumTitle should be the string Riptide

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
  }else if (records[id].hasOwnProperty("tracks") === false) {
      records[id][prop] == []
  }else if (prop === "tracks" && value !== "") {
      records[id][prop].push(value)
  }
     
  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/119.0.0.0 Safari/537.36

Challenge Information:

Basic JavaScript - Record Collection

1 Like

What’s happening here? You aren’t adding the name of the track to the new tracks array.

2 Likes

Thank you for your response so here the test says I should assign an empty array if the album does not have a tracks property. Please see below for more information.

Complete the function using the rules below to modify the object passed to the function.

  • Your function must always return the entire records object.
  • If value is an empty string, delete the given prop property from the album.
  • If prop isn’t tracks and value isn’t an empty string, assign the value to that album’s prop.
  • If prop is tracks and value isn’t an empty string, you need to update the album’s tracks array. First, if the album does not have a tracks property, assign it an empty array. Then add the value as the last item in the album’s tracks array.
1 Like

Read this part again. It doesn’t actually say to only make an empty array and do nothing else. The instructions are more complicated.

First, if the album does not have a tracks property, assign it an empty array. Then add the value as the last item in the album’s tracks array.

1 Like

Thank you for your response sir, it worked after adding the value to the empty tracks and fixing my assignment operator, i added two equal signs by mistake.

else if (records[id].hasOwnProperty(“tracks”) === false) {
records[id][prop] ==

3 Likes

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