Could someone explain to me the syntax here?

I don’t fully understand why ```
object[id][prop]


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**
      
```js

// 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; 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

object[id][prop]

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