Record Collection Challenge - Not passing all tests

Hey folks, maybe you can help:

Not passing tests for if the prop is missing or undefined.
Not popping value on properly.
I don’t think the delete works.

Here’re the results of the tests:

Passed
After `updateRecords(recordCollection, 5439, "artist", "ABBA")` , `artist` should be the string `ABBA`

Failed
After `updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")` , `tracks` should have the string `Take a Chance on Me` as the last element.

Failed

After `updateRecords(recordCollection, 2548, "artist", "")` , `artist` should not be set

Passed

After `updateRecords(recordCollection, 1245, "tracks", "Addicted to Love")` , `tracks` should have the string `Addicted to Love` as the last element.

Passed

After `updateRecords(recordCollection, 2468, "tracks", "Free")` , `tracks` should have the string `1999` as the first element.

Failed

After `updateRecords(recordCollection, 2548, "tracks", "")` , `tracks` should not be set

Passed

After `updateRecords(recordCollection, 1245, "albumTitle", "Riptide")` , `albumTitle` should be the string `Riptide`

Here’s my code:


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

Your browser information:

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

Challenge: Record Collection

Link to the challenge:

I don’t think that this is the condition that you mean to use.

It is different from how you checked if the value means you want to delete the property here.

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