Basic JavaScript - Record Collection

Tell us what’s happening:

Describe your issue in detail here.

Your code so far

how do you interpret Not set compared to:

  • If value is an empty string, delete the given prop property from the album.
    If value ==“” && records[id][prop] !== undefined I am deleing the prop
    then what is the meaning of this test case saying
    updateRecords(recordCollection, 2548, "tracks", "") , tracks should not be set
// 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) {
    const newRec = JSON.parse(JSON.stringify(records));
    const obj = newRec[id];
    const propValue = obj[prop];
    if (value == "" && propValue != undefined) {
      delete newRec[id][prop];
    }
    if (prop != "tracks" && value == "" && propValue != undefined) {
      newRec[id][prop] = value;
    }
    if (prop != "tracks" && value != "") {
      newRec[id][prop] = value;
    }

    if (prop === "tracks" && value != "") {
      if (propValue === undefined) {
        newRec[id][prop] = [];
        newRec[id][prop] = [...newRec[id][prop], value];
      } else {
        newRec[id][prop] = [...newRec[id][prop], value];
      }
    }

    return newRec;
  }
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/118.0.0.0 Safari/537.36

Challenge Information:

Basic JavaScript - Record Collection

  1. You are not asked to make a copy of the object, only that you should not directly modify the global object (outside of the function). Remove the JSON code and use the records parameter directly.

  2. Re-read the second list item of the requirements.

If prop isn’t tracks and value isn’t an empty string, assign the value to that album’s prop.

Your code:

if (prop != "tracks" && value == "" && propValue != undefined)

They both mean the same. If value is an empty string, whatever prop is (artist or tracks) that property should be deleted (i.e. not set).


1 Like

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