Could someone explain to me the syntax here?

I don’t fully understand why ```

Why is bracket notation necessary here instead of dot notation?

I also don't understand why value needs to be in brackets here
else if (prop === "tracks" && !object[id].hasOwnProperty("tracks")) {
  object[id][prop] = [value]
Is it because value is populating an empty array?
I originally tried created an empty array and pushing the value to it, but that did not work

**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 (prop !== "tracks" && value !== "") {
  object[id][prop] = value;
} else if (prop === "tracks" && !object[id].hasOwnProperty("tracks")) {
  object[id][prop] = [value]
} else if (prop === "tracks" && 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; rv:84.0) Gecko/20100101 Firefox/84.0.

Challenge: Record Collection

Link to the challenge:

Bracket notation is needed when the property is unknown or a varable or multiple string


In this cases ‘id’ and ‘prop’ are varables that’s why bracket notation is necessary.

Then for “value”

Value needs to be an array

Putting it in brackets makes it an array