Doubt about the nested object access

Tell us what’s happening:
Hi,

I am unable to understand why the below lines of code is not working for my program.
Creating an empty array with key as tracks inside object.id and they pushing the first value.

    object[id].tracks = [];
    object[id].tracks.push(value);

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(value!='' && value!=undefined && prop!='tracks'){
 object[id][prop]=value;
    console.log(1);

}
if(prop==='tracks' && !object[id].hasOwnProperty(prop)){
 
   object[id].tracks = [];
   object[id].tracks.push(value);
  console.log(object);
  return;
 
}
if(prop==='tracks' && value!=undefined){
object[id][prop].push(value);
console.log(3);
return;
}
if(value==undefined || value == ''){
 
 delete object[id][prop];
 console.log(4);
}
 return object;
}

updateRecords(collection, 5439, 'tracks','');

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:

1 Like

Have a look at what you are returning in updateRecords inside the if statements.

first bullet point

  • Your function must always return the entire object.

think about the return statement you have used in if blocks and also there is difference between empt string and undefined

That I have corrected my confusion is around nested array element addition i.e
I could not understand why below statements are wrong

object[id].tracks =[ ] ;
object[id].tracks.push(value);

what do you see that says they are wrong?

Previously it wasn’t accepting the value which I was trying to Push in the nested array object it seems its working now Thanks