DEV Community

Lucas Valhos
Lucas Valhos

Posted on

1

JAVASCRIPT - Desestruturação de objetos (object destructuring)

Introdução Histórica do Object Destructuring

Se você já esteve na estrada do desenvolvimento JavaScript por tempo suficiente, deve se lembrar dos dias em que acessar e manipular propriedades de objetos exigia um monte de código boilerplate. Antes do ES6, atribuir valores de um objeto a variáveis individuais era um processo repetitivo e, francamente, um tanto tedioso. Era comum ver algo assim:

const person = { name: 'Alice', age: 30, city: 'Wonderland' };
const name = person.name;
const age = person.age;
const city = person.city;
Enter fullscreen mode Exit fullscreen mode

Esse tipo de código não só era verboso, mas também propenso a erros, especialmente em objetos com muitas propriedades. Com a introdução do ES6, veio o salvador que todos esperávamos: a desestruturação de objetos. Este recurso revolucionou a forma como manipulamos dados estruturados em JavaScript, tornando nosso código mais legível, conciso e menos propenso a erros.

Desestruturação de Objetos: A Mágica Concisa

A desestruturação de objetos permite extrair propriedades de objetos e atribuí-las a variáveis de maneira concisa. Veja como a sintaxe de desestruturação transforma o exemplo anterior:

const a = { test: 'test' };
const { test } = a;
Enter fullscreen mode Exit fullscreen mode

Aqui, a propriedade test do objeto a é extraída e atribuída à variável test usando a sintaxe de desestruturação. Este padrão é útil para evitar a necessidade de acessar repetidamente as propriedades do objeto e pode tornar o código mais legível e eficiente.

Exemplos Práticos de Desestruturação

Vamos explorar alguns exemplos adicionais de desestruturação de objetos em JavaScript, cobrindo diferentes casos e usos. Esses exemplos mostrarão como a desestruturação pode simplificar nosso código diário.

1. Desestruturação de Múltiplas Propriedades

const person = {
  name: 'Alice',
  age: 30,
  city: 'Wonderland'
};

const { name, age, city } = person;

console.log(name); // Alice
console.log(age);  // 30
console.log(city); // Wonderland
Enter fullscreen mode Exit fullscreen mode

2. Desestruturação com Renomeação de Variáveis

const user = {
  username: 'jdoe',
  email: 'jdoe@example.com'
};

const { username: userName, email: userEmail } = user;

console.log(userName);  // jdoe
console.log(userEmail); // jdoe@example.com
Enter fullscreen mode Exit fullscreen mode

3. Desestruturação com Valores Padrão

const options = {
  timeout: 1000
};

const { timeout, retries = 3 } = options;

console.log(timeout); // 1000
console.log(retries); // 3
Enter fullscreen mode Exit fullscreen mode

4. Desestruturação em Parâmetros de Função

function greet({ name, age }) {
  console.log(`Hello, my name is ${name} and I am ${age} years old.`);
}

const person = {
  name: 'Bob',
  age: 25
};

greet(person); // Hello, my name is Bob and I am 25 years old.
Enter fullscreen mode Exit fullscreen mode

5. Aninhamento de Desestruturação

const employee = {
  id: 1,
  name: 'Jane Doe',
  department: {
    name: 'Engineering',
    location: 'Building 1'
  }
};

const { name, department: { name: deptName, location } } = employee;

console.log(name);      // Jane Doe
console.log(deptName);  // Engineering
console.log(location);  // Building 1
Enter fullscreen mode Exit fullscreen mode

6. Desestruturação de Arrays

A desestruturação não é limitada a objetos; também pode ser usada com arrays:

const colors = ['red', 'green', 'blue'];

const [first, second, third] = colors;

console.log(first);  // red
console.log(second); // green
console.log(third);  // blue
Enter fullscreen mode Exit fullscreen mode

7. Desestruturação de Arrays com Valores Padrão

const numbers = [1, 2];

const [a, b, c = 3] = numbers;

console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
Enter fullscreen mode Exit fullscreen mode

8. Troca de Valores Usando Desestruturação

let x = 1;
let y = 2;

[x, y] = [y, x];

console.log(x); // 2
console.log(y); // 1
Enter fullscreen mode Exit fullscreen mode

9. Ignorando Valores em Desestruturação de Arrays

const fullName = ['John', 'Doe', 'Smith'];

const [firstName, , lastName] = fullName;

console.log(firstName); // John
console.log(lastName);  // Smith
Enter fullscreen mode Exit fullscreen mode

Esses exemplos demonstram a versatilidade da desestruturação de objetos e arrays em JavaScript, tornando o código mais legível e eficiente. Para nós, desenvolvedores, adotar essas práticas significa escrever menos código, reduzir a chance de erros e, acima de tudo, tornar nosso trabalho diário um pouco mais agradável.

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay