One conditon did not work

Tell us what’s happening:

  1. This condition did not work: After updateRecords(collection, 5439, "tracks", "Take a Chance on Me") , tracks should have Take a Chance on Me as the last element
  2. This condition met After updateRecords(collection, 1245, "tracks", "Addicted to Love") , tracks should have Addicted to Love as the last element.
  3. Rest are fine

Your code so far

      function updateRecords(object, id, prop, value) {
  if (prop != 'tracks' && value != '') {
    object[id][prop] = value
  } else if (prop == 'tracks' && !object[id].hasOwnProperty('tracks')) {
    object[id][prop] = value
  } else if(prop == "tracks" && value != '') {
    object[id][prop].push(value)
  } else if(value == '') {
    delete object[id][prop];
  }; 
  return object;
}

// 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 != '') {
  object[id][prop] = value
} else if (prop == 'tracks' && !object[id].hasOwnProperty('tracks')) {
  object[id][prop] = value
} else if(prop == "tracks" && value != '') {
  object[id][prop].push(value)
} else if(value == '') {
  delete object[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/85.0.4183.121 Safari/537.36 OPR/71.0.3770.228.

Challenge: Record Collection

Link to the challenge:

Only one of these will run, and I don’t think this code does exactly what you believe it does.

If no tracks array exists, you need to create an array and add the value to that array, otherwise you just add the value to the preexisting array. Your code doesn’t quite do this.

I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (’).

1 Like

This code create a new property with new value, isn’t it?

Sure, but it isn’t creating an array.

I will consider it for my future post. Thanks

Thank you. I solved it!

1 Like

Good job getting it to work!