Basic JavaScript - Record Collection

Tell us what’s happening:
Hi everyone. It seems my solution is not working, but when I run a console.log for each scenarios it seems ok. I’m a bit lost here. Thanks for your help.

Your code so far
Here is my solution so far :

function updateRecords(records, id, prop, value) {

if (value == "") {

delete recordCollection[id][prop];

}

if (prop != "tracks" && value != "") {

recordCollection[id][prop] = value;

}

if (prop == "tracks" && value != "") {

if (prop.tracks == undefined) {

recordCollection[id][prop] = [];

recordCollection[id][prop].push(value);

}

else {

recordCollection[id][prop].push(value);

}

}

return records;

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

updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me");
console.log(recordCollection[5439]);

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36

Challenge: Basic JavaScript - Record Collection

Link to the challenge:

You’re ignoring the first function argument. You need to use the function arguments instead of the global variable.

Also note, it’s way easier to read your code if you use standard indentation.

Thanks you so much for your help and thanks for the feedback about the indentation. I finally find a simpler way to do this challenge. Hope it’s a bit better in terms of indentation btw.

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] = [];
    }
    records[id][prop].push(value);
  }
return records;
}
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] = [];
    }
    records[id][prop].push(value);
  }
  return records;
}
1 Like

Thanks again for your advice ! Really much appreciated !

1 Like

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