Code is'nt working

I have fulfilled all the given conditions through if else statement but the code didn’t work


                                                                                 // 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!=""){ 
  collection[id][prop]=value;
}
else if(prop=="tracks" && collection[id][prop]==undefined){
  collection[id][prop]=[value];
}
else if(prop=="tracks" && value!=""){
  collection[id][prop].push(value);
}
else if(value==""){
  delete collection[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/89.0.4389.90 Safari/537.36 Edg/89.0.774.57.

Challenge: Record Collection

Link to the challenge:

Notice that function is not using the object it is passed.

2 Likes

You’ve named the function’s first input object, but inside the function you’re referring to the variable named collection and not actually using object at all. collection was defined outside the function, so it’s a global variable – that means there can only be one thing called collection in the whole program. But you want the function to accept lots of different objects to update. Replace every collection inside the function with object and you’ll avoid that bug.

1 Like

thank you for this proper explanation :heart: :heart: :heart: :heart:

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