Объект — это способ хранения информации. В объекте может храниться что угодно, от строки до массива, даже функция! Информация хранится с помощью пар ключ-значение. Давайте углубимся в детали.
Как выглядит Объект?
Объект представляет собой набор пар ключ-значение, заключенных в фигурные скобки {}. каждая пара "ключ-значение" состоит из ключа и значения,разделенных двоеточием. Пары "ключ-значение" отделяются друг от друга запятыми.
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"}}]