Объект — это способ хранения информации. В объекте может храниться что угодно, от строки до массива, даже функция! Информация хранится с помощью пар ключ-значение. Давайте углубимся в детали.

Как выглядит Объект?

Объект представляет собой набор пар ключ-значение, заключенных в фигурные скобки {}. каждая пара "ключ-значение" состоит из ключа и значения,разделенных двоеточием. Пары "ключ-значение" отделяются друг от друга запятыми.

let cupcake = { frosting: "vanilla",
              sprinkles: "rainbow",
              paper: "pink"}

Вот как выглядит наш объект, напечатанный на терминале:

Что нужно знать об объектах

Что крутого в работе с объектами, а не с массивами, заключается в том, что элементы неупорядочены — это означает, что для доступа к значению вам не нужно находить номер его индекса.

Ранее вы работали с массивами — возможно, вы удивитесь, узнав, что массив — это тип объекта.

Как вы можете получить доступ к тому, что находится внутри объекта?

Для доступа к свойствам (пары ключ-значение) объекта можно использовать запись через точку или квадратную скобку. Они похожи, но имеют небольшие различия в том, какие входные данные они могут обрабатывать.

Обозначение через точку

Точечная нотация выглядит элегантно и легко читается, но она не может обрабатывать ввод, начинающийся с цифры, содержащий пробелы или содержащий переменные.

console.log(cupcake.frosting) //vanilla

Квадратные скобки

При использовании скобочной нотации вы должны заключать вводимые данные в кавычки. Однако вы можете использовать пробелы, переменные или строки, начинающиеся с цифр.

Это обозначение может быть более знакомым из-за того, как оно используется с массивами, например array[i]

console.log(cupcake["frosting"]) //vanilla

Сбор всех ключей/значений объекта в массиве

Иногда полезно получить ВСЕ ключи от вашего объекта в одном месте. К счастью, метод Object.keys() здесь, чтобы помочь.

console.log(Object.keys(cupcake))

этот метод оставит нам массив со всеми ключами, который выглядит так: ["глазурь", "окропление", "розовый"]

Очень похожим образом вы можете получить доступ ко всем значениям в объекте и вернуть их массив с помощью метода Object.values(). Как и в методе, использованном выше, вы вставляете имя объекта между скобками. Для нашего объекта кекса вы получите ["ваниль", "радуга", "розовый"].

Вложенные объекты

Подобно вложенным массивам, вы можете иметь вложенные объекты. Вот краткий обзор того, как они могут выглядеть:

let cakes =  {cheesecakes : 
              { flavour: "strawberry"},
              cupcakes : 
              {frosting: "vanilla",
              sprinkles: "rainbow",
              paper: "pink"}}

Вещи могут стать еще более вложенными с объектами внутри массивов:

let cakes =  [{cheesecakes : 
              { flavour: "strawberry"},
              cupcakes : 
              {frosting: "vanilla",
              sprinkles: "rainbow",
              paper: "pink"}}]