Atribuição via desestruturação em arrays


Sintaxe

const [tipo da variável] [elementos a serem extraídos] = [array];

Nota

Todos os elementos extraídos serão declarados com o tipo da variável (let ou const) indicado antes da desestruturação.


Exemplo

Forma tradicional

  • Em array simples

    const numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9];
     
    const primeiroNumero = numeros[0];
    const segundoNumero = numeros[1];
     
    console.log(primeiroNumero, segundoNumero); // 1 2
  • Em array composto (forma recomendada)

    const numeros = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];
     
    console.log(numeros[1][2]); // 6

Desestruturação

  • Em array simples

    const numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9];
     
    const [primeiroNumero, segundoNumero] = numeros;
     
    console.log(primeiroNumero, segundoNumero); // 1 2
  • Em array composto (alta complexidade, desnecessário)

    const numeros = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];
     
    const [, [, , seis]] = numeros;
     
    console.log(seis); // 6

Pular valores

const numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9];
 
const [primeiroNumero, , terceiroNumero, , quintoNumero] = numeros;
 
console.log(primeiroNumero, terceiroNumero, quintoNumero);

Operador resto (rest operator)

Função

Obter o restante dos elementos que não foram extraídos para variáveis específicas na desestruturação e atribuí-los a uma variável.

Nota

Tem a mesma função do operador spread, porém são nomenclaturas específicas para cada contexto.

Exemplo

const numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9];
 
const [primeiroNumero, segundoNumero, ...resto] = numeros;
 
console.log(primeiroNumero, segundoNumero); // 1 2
console.log(resto); // [ 3, 4, 5, 6, 7, 8, 9 ]

Referências