Извлечение данных из объектов JavaScript может быть довольно громоздким проектом, но для новых разработчиков у меня есть быстрый совет, которым я хотел бы поделиться. Ниже я расскажу о деструктурировании объектов и остальных операторах, которые могут сделать работу с объектами более плавной. Обе эти функции были добавлены в JavaScript в ES6 и не были доступны в более ранних версиях.
Деструктуризация объекта
Допустим, у нас есть простой объект, содержащий три свойства, и каждое свойство имеет значение.
const objectName = { key1: “value1”, key2: “value2”, key3: “value3” }
Чтобы получить значения внутри объекта, мы могли бы получить к нему доступ, обратившись к нему, используя имя объекта и ключи свойств, подобные этому.
console.log(objectName.key1, objectName.key2, objectName.key3) // "value1", "value2", "value3"
Чтобы избежать большого количества кода внутри самих функций, мы могли бы объявить, например, константа для каждого свойства, что уменьшает количество кода, используемого позже, но приводит к увеличению количества строк кода в целом.
const key1 = objectName.key1 const key2 = objectName.key2 const key3 = objectName.key3 console.log(key1, key2, key3) // "value1", "value2", "value3"
Деструктивный подход, показанный ниже, делает значения свойств доступными только за счет обращения к ключу без предварительного объявления их одного за другим.
const { key1, key2, key3 } = objectName console.log(key1, key2, key3) // "value1", "value2", "value3"
Довольно аккуратно, не так ли?
Остальной параметр
Когда необходимо деконструировать только некоторые свойства объекта, вы можете создать новый объект из оставшихся свойств, извлекая их с помощью параметра rest. Он характеризуется как последний параметр в синтаксисе, начинающийся с трех точек (…) и сопровождаемый подходящим именем для нового создаваемого объекта.
const { key1, …newObject } = objectName console.log(key1) // "value1" console.log(newObject) // {key2: "value2", key3: "value3"}
Стоит отметить, что в синтаксисе может быть только один остаточный параметр, и он всегда должен быть последним параметром в фигурных скобках.
Я настроил Codepen, если вы хотите поиграть с деструктуризацией объектов и остальными параметрами: https://codepen.io/elsisco/pen/QWqjrXw
Дальнейшее исследование
Это был просто пример того, как вы можете использовать деструктурирование для написания более качественного и аккуратного кода. С помощью деструктуризации можно сделать гораздо больше, не только при работе с объектами, но и с массивами.
Если это вызвало у вас любопытство, я призываю вас продолжить изучение этого вопроса — вы не пожалеете.