Skip to content

Object nesting

Creating nested objects

Some more complex data structures can be created by nesting lists and objects inside other objects.

js
const user = {
  name: 'Jane Doe',
  email: 'jane.doe@example.com',
  address: {
    street: '123 Main St',
    city: 'Sometown',
    county: 'Anyshire',
    postcode: 'AB1 2CD'
  },
  borrowedBooks: [
    {
      id: 1,
      title: "The Handmaid's Tale",
      author: 'Margaret Atwood',
      year: 1985,
      isbn: '9780099740919'
    }
  ]
}

Accessing nested objects

We can chain together the property names to access the nested object's properties.

js
console.log(user.address.street)
console
123 Main St

Accessing nested arrays

Similarly, for nested arrays we can write:

js
console.log(author.books[0].title) // 'The Handmaid's Tale'
console
The Handmaid's Tale

Optional chaining

This is a nice syntax for checking if a property exists before trying to access it.

js
function logFirstBookTitle(user) {
  return user.borrowedBooks[0]?.title
}