Lädt...


🔧 Array Destructuring no Javascript, você sabe o que é?


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Recentemente eu estava tranquilamente programando em um projeto meu e quando eu inocentemente fui pegar o primeiro valor de um vetor como todo bom programador faz const valor = vetor[0], meu Eslint imediatamente reclamou e me mandou usar algo chamado Array Destructuring, fiquei muito confuso pois nunca tinha ouvido falar de tal técnica.

Se você assim como eu você não sabe o que é isso, veremos hoje tudo sobre essa sintaxe poderosa que faz manipular vetores muito mais agradável.

Sumário

  • O que o linter queria que eu soubesse
  • Pulando valores
  • Atribuindo o resto do vetor
  • Vetores e funções
  • Usando valores iniciais
  • Passando na entrevista de emprego
  • Conclusão

O que o linter queria que eu soubesse

Imagine que queremos extrair informações de um vetor, geralmente o que fazemos é algo como o seguinte:

let frase = ["Eu", "quero" , "jogar", "minecraft"];
let pessoa = frase[0];
let jogo = frase[3];

console.log(pessoa); //"Eu"
console.log(jogo); //"minecraft"

Entretanto, no Javascript ES6, foi introduzido o novo método Array Destructuring para extrair informações de um vetor, vejamos como é sua sintaxe utilizando o mesmo exemplo:

let frase = ["Eu", "quero" , "jogar", "minecraft"];
let [pessoa, vontade] = frase;

console.log(pessoa); //"Eu"
console.log(vontade); //"quero"

Também podemos fazer desse jeito:

let [pessoa, vontade] = ["Eu", "quero" , "jogar", "minecraft"];

console.log(pessoa); //"Eu"
console.log(vontade); //"quero"

Ou assim:

let pessoa, vontade;
[pessoa, vontade] = ["Eu", "quero" , "jogar", "minecraft"];

console.log(pessoa); //"Eu"
console.log(vontade); //"quero"

Note que as 3 maneiras apresentadas apresentam o mesmo resultado, e como é de se esperar, as variáveis tem seus valores atribuídos da esquerda para a direita, então a primeira variável recebe o primeiro valor do vetor, a segunda o segundo e assim por diante.

Pulando valores

Talvez agora você esteja pensando que eu te enganei, pois eu disse que mostraria o mesmo exemplo, porém aqui estamos pegando os dois primeiros valores, ao invés do primeiro e do último, vejamos então como fazer isso:

let [pessoa,,,jogo] = ["Eu", "quero" , "jogar", "minecraft"];

console.log(pessoa); //"Eu"
console.log(jogo); //"minecraft"

O que aconteceu aqui?

Perceba que ao invés de 1 vírgula, aqui nós temos 3, é assim que se faz para "pular" valores na desestruturação, temos a vírgula normal e outras duas adicionais, que indicam que queremos pular dois valores, assim conseguimos replicar o comportamento original de pegar o primeiro e último valor.

Essa vírgula especial também pode ser colocada no começo do vetor, indicando que queremos pular o primeiro valor:

let [,vontade,,jogo] = ["Eu", "quero" , "jogar", "minecraft"];

console.log(vontade); //"quero"
console.log(jogo); //"minecraft"

O operador da vírgula também nos permite fazer algo muito engraçado, pular todos os itens de um vetor:

// :)
let [,,,,] = ["Eu", "quero" , "jogar", "minecraft"];

Atribuindo o resto do vetor

Tudo que vimos aqui é muito legal, mas ficar escolhendo e pulando valores do vetor dificilmente vai acontecer no mundo real, e se quisermos pegar a primeira variável e colocar o resto em uma outra variável específica?

let [pessoa, ...resto] = ["Eu", "quero" , "jogar", "minecraft"];

console.log(pessoa); //"Eu"
console.log(resto); //["quero", "jogar", "minecraft"]

Vetores e funções

Essa técnica fica especialmente útil quando estamos usando funções que retornam um vetor, assim podemos extrair os valores diretamente:

function retornaVetor() {
    return ["Eu", "quero" , "jogar", "minecraft"];
} 
let [pessoa, vontade] = retornaVetor();

console.log(pessoa); //"Eu"
console.log(vontade); //"quero"

Usando valores iniciais

Outra propriedade interessante, podemos usar valores iniciais para nossas variáveis, assim como em funções:

let [pessoa = "Eu", jogo = "minecraft"] = ["eu"];

console.log(pessoa); //"eu"
console.log(jogo); //"minecraft"

No exemplo acima, a variável jogo, usou o valor inicial que demos a ela já que não existia um outro valor no vetor.

Caso você esteja se perguntando o que acontece se colocamos mais variáveis do lado esquerdo do que valores do lado direito, sem usar valores padrão, nesse caso as variáveis sobrando simplesmente recebem undefined:

let [pessoa, vontade, verbo] = ["Eu"];

console.log(pessoa); //"Eu"
console.log(vontade); //undefined
console.log(verbo); //undefined

Passando na entrevista de emprego

Agora uma curiosidade:

let a = 3;
let b = 6;

[a, b] = [b, a];

console.log(a); //6
console.log(b); //3

Pronto! Agora graças a esse texto você consegue responder se te perguntarem como trocar o valor de duas variáveis sem usar uma terceira :D

Conclusão

Se você já usou React ou React Native antes, Array Destructuring é exatamente o que está acontecendo quando você usa o useState:

const [count, setCount] = useState(0);

Obrigado por ler e espero que tenha aprendido algo novo hoje ou reforçado o que já sabia! Eu com certeza aprendi muito para escrever esse artigo, se você quer ler mais sobre desestruturação no geral, eu recomendo a documentação da mozilla.

...

🔧 Array Destructuring no Javascript, você sabe o que é?


📈 93.37 Punkte
🔧 Programmierung

🔧 Você sabe o que é Message Broker?


📈 57.44 Punkte
🔧 Programmierung

🔧 Você sabe o que seria um modelo de IA?


📈 57.44 Punkte
🔧 Programmierung

🔧 Array Destructuring / Object Destructuring


📈 50.95 Punkte
🔧 Programmierung

🔧 Gerenciamento de Pacotes Python: Você Sabe Onde Eles Moram?


📈 45.35 Punkte
🔧 Programmierung

🔧 Você sabe a diferença entre Weak e Unowned?


📈 45.35 Punkte
🔧 Programmierung

🔧 Você sabe debugar código ?


📈 45.35 Punkte
🔧 Programmierung

🔧 Você sabe refatorar mesmo?


📈 45.35 Punkte
🔧 Programmierung

🔧 # Const x Final em Dart. Você sabe a diferença?


📈 45.35 Punkte
🔧 Programmierung

🔧 O Gerenciador de Hosts que Você Nunca Soube que Precisava... Até Agora! 😲


📈 42.57 Punkte
🔧 Programmierung

🔧 Mais do que armazenamento de código: 5 features do GitHub que você não conhece


📈 42.57 Punkte
🔧 Programmierung

🔧 Machine Learning, sabe o que é?


📈 39.05 Punkte
🔧 Programmierung

🔧 Sabe o que é IA Generativa?


📈 39.05 Punkte
🔧 Programmierung

🔧 Timezone Buddy! Se você trabalha remoto com outros países você PRECISA dessa extensão!


📈 36.79 Punkte
🔧 Programmierung

🔧 Você deve trabalhar pra você Por Zarathon Viana


📈 36.79 Punkte
🔧 Programmierung

📰 Acceso Remoto Seguro: Por que es importante y por que hay que hacerlo bien


📈 36.27 Punkte
📰 IT Security Nachrichten

🔧 Tricky JavaScript Interview Question Using Array And Object Destructuring Combined


📈 35.93 Punkte
🔧 Programmierung

🔧 Tricky JavaScript Interview Question Using Array And Object Destructuring Combined


📈 35.93 Punkte
🔧 Programmierung

🔧 JavaScript Array Destructuring


📈 35.93 Punkte
🔧 Programmierung

🔧 Javascript Array/Object Destructuring - With Some Tricks You Probably Dont Know


📈 35.93 Punkte
🔧 Programmierung

🔧 Array Destructuring in JavaScript: Tips, Tricks, and Techniques


📈 35.93 Punkte
🔧 Programmierung

🔧 Simplifying JavaScript Code with Array Destructuring


📈 35.93 Punkte
🔧 Programmierung

🔧 4 Conceitos legais do JavaScript que você vai achar legal também


📈 35.9 Punkte
🔧 Programmierung

🔧 10 Livros de JavaScript, TypeScript e Node.js que vale à pena você ler


📈 35.9 Punkte
🔧 Programmierung

🔧 18 Métodos de Arrays em JavaScript que Você Deveria Saber


📈 35.9 Punkte
🔧 Programmierung

🔧 ⚠150+ Expressões JavaScript Que Você Precisa Conhecer⚠


📈 35.9 Punkte
🔧 Programmierung

🔧 Upcoming JavaScript Features: Simplifying Array Combinations with `Array.zip` and `Array.zipKeyed`


📈 35.68 Punkte
🔧 Programmierung

🔧 Tudo o que você precisa saber sobre Next.JS para iniciar um novo projeto hoje


📈 30.48 Punkte
🔧 Programmierung

🔧 Por que você deveria priorizar a documentação de suas experiências


📈 30.48 Punkte
🔧 Programmierung

🔧 10 Livros sobre Linux que vale a pena você ler


📈 30.48 Punkte
🔧 Programmierung

🔧 Angular 19 chegou: tudo o que você precisa saber!


📈 30.48 Punkte
🔧 Programmierung

🔧 Diciotech: o dicionário tech colaborativo que você pode ajudar a construir


📈 30.48 Punkte
🔧 Programmierung

🔧 5 Livros de Golang que vale à pena você ler


📈 30.48 Punkte
🔧 Programmierung

matomo