function updateRecords(records, id, prop, value) {
if (value===""){
delete records[id][prop]
}
else if (prop==="tracks"&&value!==""){
records[id][prop]+=value
}
else if(prop!=="tracks"&&value!==""){
records[id][prop]=value
}
else if (prop==="tracks"&&records.id.hasOwnProperty("tracks")===false){
records.id.tracks.value=value;
}
return records
}
When I execute the code
console.log(updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me"))
the output is
'5439': { albumTitle: 'ABBA Gold', tracks: 'undefinedTake a Chance on Me' }
How can I make this undefined go away?
I am open to suggestions and feedback.
Operating System Windows 11 Development Build. Browser Chrome Version 91.0.4472.164 (Official Build) (64-bit). Webstorm IDE.
records[id][prop]+=value to records[id][prop]=value
records[id][prop] is undefined at the start of the if, so using += you are just adding more text to the existing undefined “string” (“string”).
else if (prop==="tracks"&&value!==""){
records[id][prop]=value
}