Basic JavaScript - Record Collection

Tell us what’s happening:
Describe your issue in detail here.
in this function i when i added else after if statement one requirement is not satisfied , it gives me error - After updateRecords(recordCollection, 5439, ‘tracks’, ‘Takes a Chance on Me’), tracks should the string Take a Chance on Me as the last and only element. and in solution1 there is only one difference that i added else after if is it syntax problem why it gives me the error.

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

Challenge: Basic JavaScript - Record Collection

Link to the challenge:

Are you asking why you needed to add the “else” statement?

no i’m asking if i use else statement after if on the last part of the funciton before returning records, if i add else i get error and if i remove it it works fine. why is that

You’re not trying to add a second else statement like this, right? Sorry for the confusion, I’m just trying to get some visuals

no i already added look this part - if (records[id].hasOwnProperty(“tracks”) === false) {
records[id][prop] = ;
} else {
records[id][prop].push(value);
} this else above, if i remove it , the function works and if i add it back it won’t work i just wanted to know why does this else makes a problem

ah I see. Because if it’s an else statement, and you’re trying to add a track to a record that doesn’t have a track array, it will create the array but never add the track. Without the else statement, it both creates the array then adds the track to the newly created array

oh okie got it. thanks

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