Desenvolvedor de Software e Especialista em Tecnologia da Informação

Truque Javascript de como manipular Arrays! (ES6+) 💻

Você já viu alguém escrevendo um código JavaScript extremamente limpo e ficou pensando como ele conseguiu fazer aquilo? A resposta pode estar em um recurso chamado Destructuring Assignment. Neste artigo, vamos explorar como a desestruturação de arrays e objetos pode transformar seu código, tornando-o mais legível, profissional e alinhado com as práticas modernas de desenvolvimento JavaScript.

📅  4 de junho de 2026
⏱️  9 min
🏷️  Javascript
📚 artigos +


Destructuring Assignment: Como escrever JavaScript mais limpo e profissional com ES6+

Você já viu alguém escrevendo um código JavaScript extremamente limpo e ficou pensando como ele conseguiu fazer aquilo?

Neste artigo mostro um recurso muito utilizado por desenvolvedores : Destructuring Assignment (Desestruturação).

Com apenas algumas linhas de código você consegue extrair valores específicos de um array sem precisar acessar posições manualmente utilizando índices.

Além disso, também apresento o operador Rest (...), que permite capturar todos os elementos restantes em um único array, deixando o código muito mais organizado e fácil de manter.

Esses recursos fazem parte do JavaScript moderno (ES6+) e aparecem diariamente em projetos utilizando React, Vue, Node.js, Angular e diversos frameworks modernos.

Truque Javascript de como manipular Arrays! (ES6+) 💻

Destructuring Assignment JavaScript ES6 Array Destructuring Rest Operator Spread Operator Código Limpo Desenvolvimento Web Frontend Backend Node.js React Vue.js Programação RogerioPontesTI

"A diferença entre código que funciona e código que é bem escrito muitas vezes está na forma como extraímos dados. Destructuring não é apenas sintaxe — é uma mudança na forma como pensamos sobre dados."


O que é Destructuring Assignment?

O Destructuring Assignment (Desestruturação) é um recurso introduzido no ECMAScript 2015 (ES6) que permite extrair valores de arrays ou objetos e atribuí-los a variáveis de forma simples e intuitiva.

Em vez de acessar elementos manualmente usando índices ou propriedades, a desestruturação permite que você "desempacote" valores de estruturas de dados em variáveis individuais com uma sintaxe limpa e expressiva.

Este recurso é amplamente utilizado em projetos modernos com React, Vue, Node.js, Angular e diversos outros frameworks, tornando o código mais legível e reduzindo a verbosidade desnecessária.


O problema do código tradicional

Antes do ES6, para extrair valores de um array, precisávamos acessar cada posição manualmente usando índices:

ANTES - Código Tradicional

let pessoa = [
    "Rogerio",
    "Pontes",
    "Analista de Sistemas",
    48
];

let nome = pessoa[0];
let sobrenome = pessoa[1];
let profissao = pessoa[2];
let idade = pessoa[3];

console.log(nome, sobrenome, profissao, idade);
        

Este código funciona, mas tem vários problemas:

  • Verboso: Quatro linhas apenas para extrair dados
  • Propenso a erros: É fácil confundir os índices
  • Difícil de manter: Se a ordem do array mudar, todas as variáveis quebram
  • Baixa legibilidade: Não fica claro o que cada índice representa

Destructuring de Arrays

Com a desestruturação, o mesmo código fica muito mais limpo:

DEPOIS - Com Destructuring

let pessoa = [
    "Rogerio",
    "Pontes",
    "Analista de Sistemas",
    48
];

let [nome, sobrenome, profissao, idade] = pessoa;

console.log(nome, sobrenome, profissao, idade);
        

Observe como o código ficou mais claro:

  • Uma única linha para extrair todos os valores
  • Nomes descritivos para cada variável
  • Sem índices numéricos que podem causar confusão
  • Mais fácil de entender o que cada variável representa

Ignorando elementos

Uma das vantagens da desestruturação é a capacidade de ignorar elementos que não nos interessam:

EXEMPLO 1 - Ignorando Elementos

let pessoa = [
    "Rogerio",
    "Pontes",
    "Analista de Sistemas",
    48
];

// Ignora o segundo e terceiro elementos
let [nome, , , idade] = pessoa;

console.log(nome, idade); // Rogerio 48
        

No exemplo acima, usamos vírgulas vazias para pular os elementos que não queremos extrair. Isso é extremamente útil quando trabalhamos com APIs que retornam arrays com muitas informações e queremos apenas algumas delas.


Rest Operator (...) - Capturando o restante

O Rest Operator (...) permite capturar todos os elementos restantes de um array em um novo array:

EXEMPLO 2 - Rest Operator

let pessoa = [
    "Rogerio",
    "Pontes",
    "Analista de Sistemas",
    48
];

let [nome, ...novos] = pessoa;

console.log(nome);  // Rogerio
console.log(novos); // ['Pontes', 'Analista de Sistemas', 48]
        

O Rest Operator é extremamente útil quando:

  • Não sabemos quantos elementos o array terá
  • Queremos separar os primeiros elementos dos demais
  • Precisamos trabalhar com listas de tamanho variável

💡 Dica: O Rest Operator sempre deve ser o último elemento na desestruturação. Você não pode colocar nada depois dele.


Rest vs Spread: Qual a diferença?

Embora usem a mesma sintaxe (...), Rest e Spread têm propósitos diferentes:

REST - Reúne

let numeros = [1, 2, 3, 4, 5];
let [primeiro, ...resto] = numeros;

// primeiro = 1
// resto = [2, 3, 4, 5]
                
SPREAD - Espalha

let numeros = [1, 2, 3];
let todos = [0, ...numeros, 4];

// todos = [0, 1, 2, 3, 4]
                

Destructuring de Objetos

A desestruturação também funciona com objetos, e é ainda mais poderosa:

EXEMPLO 3 - Destructuring de Objetos

const usuario = {
    nome: "Rogerio",
    email: "rogerio@email.com",
    idade: 48,
    endereco: {
        cidade: "Angra dos Reis",
        estado: "RJ"
    }
};

const { nome, email } = usuario;
const { cidade, estado } = usuario.endereco;

console.log(nome, email); // Rogerio rogerio@email.com
console.log(cidade, estado); // Angra dos Reis RJ
        

Renomeando variáveis

Você pode renomear as variáveis durante a desestruturação:

EXEMPLO 4 - Renomeando Variáveis

const usuario = {
    nome: "Rogerio",
    email: "rogerio@email.com"
};

const { nome: nomeUsuario, email: emailUsuario } = usuario;

console.log(nomeUsuario, emailUsuario);
        

Exemplos práticos no dia a dia

Exemplo 1: Trabalhando com APIs

EXEMPLO 5 - API Response

// Resposta de uma API
const response = {
    status: 200,
    data: {
        usuario: {
            id: 1,
            nome: "Rogerio",
            email: "rogerio@email.com"
        },
        token: "abc123"
    }
};

// Extraindo apenas o necessário
const {
    data: {
        usuario: { nome, email },
        token
    }
} = response;

console.log(nome, email, token);
        

Exemplo 2: Parâmetros de funções

EXEMPLO 6 - Parâmetros de Funções

// ❌ Antes - Código verboso
function cadastrarUsuario(dados) {
    const nome = dados.nome;
    const email = dados.email;
    const idade = dados.idade;
    // ...
}

// ✅ Depois - Com destructuring
function cadastrarUsuario({ nome, email, idade }) {
    // Use nome, email, idade diretamente
    console.log(nome, email, idade);
}

const usuario = { nome: "Rogerio", email: "rogerio@email.com", idade: 48 };
cadastrarUsuario(usuario);
        

Exemplo 3: Valores padrão

EXEMPLO 7 - Valores Padrão

function configurar({ tema = "escuro", idioma = "pt" } = {}) {
    console.log(`Tema: ${tema}, Idioma: ${idioma}`);
}

configurar({ tema: "claro" }); // Tema: claro, Idioma: pt
configurar(); // Tema: escuro, Idioma: pt
        

Destructuring em Frameworks Modernos

O Destructuring é amplamente utilizado em frameworks modernos. Veja alguns exemplos:

React

REACT - Props

// Componente React com destructuring
function CardUsuario({ nome, email, avatar }) {
    return (
        <div className="card">
            <img src={avatar} alt={nome} />
            <h3>{nome}</h3>
            <p>{email}</p>
        </div>
    );
}

// useEffect com destructuring
const { data, loading, error } = useFetch('/api/usuarios');
        

Vue.js

VUE.JS

// Options API com destructuring
export default {
    setup() {
        const { state, actions } = useStore();
        const { nome, idade } = useUsuario();
        return { nome, idade, state, actions };
    }
}
        

Node.js

NODE.JS

// Importando módulos com destructuring
const { readFile, writeFile } = require('fs');
const { Router } = require('express');

// Processando requisições
app.get('/api/usuario', (req, res) => {
    const { id, token } = req.query;
    // ...
});
        

Benefícios do Destructuring

📖 Legibilidade

Código mais claro e fácil de entender. As variáveis têm nomes descritivos que explicam o que representam.

🔧 Manutenibilidade

Menos código para manter. Mudanças na estrutura de dados exigem menos alterações no código.

⚡ Produtividade

Menos digitação, menos erros. Extraia dados complexos com uma única linha de código.

🎯 Precisão

Extraia apenas o que você precisa. Ignore o que não interessa com facilidade.


Conclusão

O Destructuring Assignment é um dos recursos mais elegantes e úteis do JavaScript moderno. Ele transforma código verboso e difícil de ler em código limpo, expressivo e profissional.

Ao dominar o destructuring você:

  • ✅ Escreve código mais legível e fácil de entender
  • ✅ Aumenta a produtividade com menos digitação
  • ✅ Reduz erros ao trabalhar com dados complexos
  • ✅ Aplica boas práticas do JavaScript moderno
  • ✅ Se torna um desenvolvedor mais profissional

💡 Lembre-se: Destructuring não é apenas uma questão de sintaxe — é uma mudança de mentalidade. É sobre pensar em termos de dados e como extraí-los de forma eficiente e elegante.


🤔 O que você achou?

💬 Quer aprender JavaScript do ZERO? Comece agora a escrever seu primeiro código e seus fundamentos!


❓ FAQ: Perguntas Frequentes sobre Destructuring

É um recurso que permite extrair valores de arrays ou objetos de maneira simples e organizada, atribuindo-os a variáveis individuais com uma sintaxe limpa e expressiva.

É o Rest Operator, utilizado para reunir os elementos restantes de um array ou objeto em uma única variável. Exemplo: const [primeiro, ...resto] = array.

O Rest reúne valores em um array (...resto). O Spread espalha valores existentes (...array). Ambos usam a mesma sintaxe mas têm propósitos opostos.

Desde o ECMAScript 2015 (ES6). Hoje, todos os navegadores modernos e versões recentes do Node.js têm suporte completo.

Sim. As versões modernas do Node.js (a partir da v6.0) possuem suporte completo ao Destructuring Assignment.

Sim! Eles tornam seu código mais limpo, legível e profissional. São amplamente utilizados em projetos com React, Vue, Angular, Node.js e praticamente qualquer framework JavaScript moderno.

Sim! O destructuring suporta aninhamento profundo. Você pode extrair propriedades de objetos dentro de objetos com a mesma sintaxe simples.

Não de forma significativa. O destructuring é resolvido em tempo de compilação e não tem impacto relevante na performance em tempo de execução. A legibilidade e manutenibilidade compensam qualquer custo mínimo.

🎬 Assista ao Vídeos completo sobre Refatoração

O vídeo foi feito em Javascript mais o conceito pode ser utilizado em qualquer outra linguagem de programação..

🎬 Assista ao Vídeos completo sobre Refatoração


🔗 Conecte-se Comigo


💬 E aí, DEV? Você já conhecia o Unpacking ou ainda criava uma variável para cada item da lista? Se travar no código, deixa aí! 😂👇

#Javascript #Destructuring #ES6 #Frontend #DestructuringAssignment #Nodejs #Programacao #DesenvolvimentoWeb #Dev #Programador #RogerioPontesTI