Record collection left-hand side error message

So I’m getting an error message here on my first “else if” statement saying:

Invalid left-hand side in assignment expression (26:13)

I imagine its a small syntax error but I can’t seem to find the problem even comparing to the tutorial answer. Any help is greatly appreciated - thank you!

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

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.88 Safari/537.36.

Challenge: Record Collection

Link to the challenge:

here, you can’t assign false to that

Thanks! Got it - I see the answer shows that if I put that “!” before the property then it does what I’m trying to do there. Thanks - that seemed to fix that.

Any chance you can explain to me why I can’t use that syntax? I rationalized it by thinking “okay I want this to happen when .hasOwnProperty returns false” but clearly that’s not what that does.

you have used = assignment
operator instead of equality == or ===

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