Basic JavaScript - Record Collection

I’m not sure how to get the tracks part working. When I ran the code, I got the artists and album down, but not with updating and adding tracks.

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

Challenge: Basic JavaScript - Record Collection

Link to the challenge:

This is saying when value does not equal an empty string set records[id][prop] to equal value. So if this function get anything else other then an empty string for value, the first thing it will do is add the value to records[id][prop]. Does that sound exactly like any of the conditions?

the algorithm they give you is a very good guide on how to get this code working. Try and follow it step by step and write code as close as you can to that algorithm and you should be very close to a working solution.

What does this literally say? What do you want it to do?

The literal meaning doesn’t match what I think you want.