Record Collection
You are creating a function that aids in the maintenance of a musical album collection. The collection is organized as an object that contains multiple albums which are also objects. Each album is represented in the collection with a unique id
as the property name. Within each album object, there are various properties describing information about the album. Not all albums have complete information.
The updateRecords
function takes 4 arguments represented by the following function parameters:
-
records
- an object containing several individual albums -
id
- a number representing a specific album in therecords
object -
prop
- a string representing the name of the album’s property to update -
value
- a string containing the information used to update the album’s property
Complete the function using the rules below to modify the object passed to the function.
- Your function must always return the entire
records
object. - If
value
is an empty string, delete the givenprop
property from the album. - If
prop
isn’ttracks
andvalue
isn’t an empty string, assign thevalue
to that album’sprop
. - If
prop
istracks
and value isn’t an empty string, add thevalue
to the end of the album’stracks
array. You need to create this array first if the album does not have atracks
property.
Note: A copy of the recordCollection
object is used for the tests. You should not directly modify the recordCollection
object.
わかってる方ぜひお教えてください。
const 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'
}
};
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 !== "" ){
if(!records[id].hasOwnProperty('tracks')){
records[id][tracks] = value;
}else{
records[id][tracks].push(value);
}
}
return records;
}
どこが間違っているか、わかりません。
ぜひお教えてください。