Skip to content

Latest commit

 

History

History
90 lines (63 loc) · 2.09 KB

destructuring.md

File metadata and controls

90 lines (63 loc) · 2.09 KB

Destructuring

  • Por meio do destructuring podemos extrair valores de arrays e objetos de uma forma mais simples e direta.
  const language = "C;Dennis Ritchie;1972".split(";");
  
  console.log(language); // [ 'C', 'Dennis Ritchie', '1972']
  • É possível extrair os valores de um array criando variáveis em ordem, de acordo com a posição de cada elemento.
  const [, author, year] = "C;Dennis Ritchie;1972".split(";"); // Deixar vazio

  console.log(author, year); // Dennis Ritchie 1972
  • Asisim como nas funções, é possível definir valores padrão para cada uma das variáveis.
  const language = "C;Dennis Ritchie".split(";");

  const [name = "-", author = "-", year = "-"] = language; // valores padrão

  console.log(name, author, year); // C Dennis Ritchie - 
  • Para extrair os valores de um objeto é necessário referenciar a chave de cada uma das propriedades.
  const language = {
    name: "C",
    author: "Dennis Ritchie",
    year: 1972
  };

  const {name, author, year} = language;

  console.log(name, author, year);
  • É possível definir nomes diferentes para as variáveis em relação as chaves das propriedades do objeto.
  const language = {
    name: "C",
    author: "Dennis Ritchie",
    year: 1972
  };

  const {name: n, author: a, year: y} = language;

  console.log(n, a, y); // C Dennis Ritchie 1972
  • Também podemos referenciar as propriedades de objetos que estão dentro de outros objetos.
  const language = {
    name: "C",
    author: "Dennis Ritchie",
    year: 1972
    company: {
      name: "Bell Labs"
    }
  };

  const {name: n, author: a, year: y, company: {name: c}} = language;

  console.log(n, a, y, c); // C Dennis Ritchie 1972 Bell Labs
  • Podemos aplicar destructuring nos parâmetros de uma função, tanto com arrays quanto com objetos.
  // Arrays
  const sum = function( [a, b] ) {
    return a + b;
  }; 

  console.log(sum( [2,2] ));

  // Objetos
  const sum = function( {a, b} ) {
    return a + b;
  }; 

  console.log(sum( {a: 2, b: 2} ));