Tell us what’s happening:
Describe your issue in detail here.
**Your code so far**
// 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) {
var hasTrack = records[id].hasOwnProperty("tracks");
if(prop != "tracks" && value != ""){
records[id].prop = value;
}else if(prop == "tracks" && hasTrack == false ){
records.id['tracks'] = value;
}else if(prop == "tracks" && value != ""){
records.id.tracks.push(value);
}else if(value ==""){
delete record.id.prop;
}
return records;
}
updateRecords(recordCollection, 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/91.0.4472.114 Safari/537.36
Challenge: Record Collection
Link to the challenge:
This is the Code Solution (Working) given in the hint section -
Please help me understand a few point here -
I tried to update the values using ( . ) operator instead of and it gave error, why?
When should I use ( . ) and when should I use ?
// 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 !== "") {
records[id][prop] = value;
} else if (prop === "tracks" && records[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;
}
updateRecords(recordCollection, 5439, 'artist', 'ABBA');
Your help is appreciated. Thank you so much
ilenia
June 25, 2021, 10:04am
#3
you can’t use dot notation with variables
you can use dot notation only if you are using the literal name of the property
if you have a variable you need to use bracket notation
1 Like
Thank you so much. That was helpful.
system
closed
December 24, 2021, 10:21pm
#5
This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.