Challenge with the record collection task

Tell us what’s happening:
Describe your issue in detail here.

when i use the code i wrote on the 2548 - id, when the value is an empty string and the prop is set to artist, the code works fine, but when the prop is set to tracks, it doesnt delete the track property, it only prints an empty value to the console. I don’t know what i am not doing right.
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 (prop !== "tracks" && value !== "") {
  records[id][prop] = value;
} else if (prop === "tracks" && id.hasOwnProperty("tracks") === false) {
  records[id][prop] = [value];
} else if (prop === "tracks" && value !== "") {
  records[id][prop].push([value])
} else if (value === "") {
  delete records[id][prop];
}
return records;
}

let res = updateRecords(recordCollection, 2548, 'tracks', '');
console.log(res);
  **Your browser information:**

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.43

Challenge: Record Collection

Link to the challenge:

The second condition is garbage and always returns true, which results in overriding tracks, instead of pushing a new value.

If you fix it, it should work fine.

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