Basic JavaScript: Record Collection: I don't know what I am doing wrong

Tell us what’s happening:
I have already followed all the instruction. Maybe I have made a mistake? :sweat_smile:

Your code so far


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

console.log(updateRecords(collection, 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/87.0.4280.101 Safari/537.36.

Challenge: Record Collection

Link to the challenge:

else if(prop==="tracks" && !object[id].hasOwnProperty("tracks")){
object[id][prop]=[value]; 
}

Is where you’ve made the mistake, you’re supposed to use the , and not &&

no, I would say that is not an error

console.log(true && true) // true
console.log(true && false) // false
console.log(false && true) // false
console.log(false && false) // false
console.log(true, true) // true
console.log(true, false) // false
console.log(false, true) // true <-- you want the condition to be true if both conditions are true, a comma separated list will not do that
console.log(false, false) // true

the issue is here:

what is the object that should or should not have the tracks property? can collection have the tracks property? /what are the properties of collection?)

It worked for me when I switched it over to the other way though.

your code has a different condition
the OP has

your code does not have that

1 Like