Categorias
Artigos JavaScript

Operador Spread (…valores)

Dominando SPREAD em funções JavaScript

Podemos criar uma função que recebe três parâmetros e os imprime na tela da seguinte forma:

Note que JavaScript não irá gerar erros se chamarmos essa função passando parâmetros a mais:

Interface gráfica do usuário, Aplicativo

Descrição gerada automaticamente

Entretanto, se passarmos parâmetros a menos, eles receberão o valor undefined:

Texto

Descrição gerada automaticamente

Note que podemos atribuir um valor padrão, que será aplicado apenas se o valor não for atribuído na chamada da função.

Texto

Descrição gerada automaticamente

Caso atribua um valor a aquela posição, o valor padrão será substituído.

Interface gráfica do usuário, Aplicativo

Descrição gerada automaticamente

Agora, observe o exemplo a seguir:

Interface gráfica do usuário, Texto

Descrição gerada automaticamente

Esse código irá imprimir os valores de 1 a 6. Com base no que vimos acima, se eu adicionasse um sétimo número, ele não seria exibido pela função.

Podemos resolver esse problema usando o operador spread/rest antes do nome do array. O operador spread/rest é declarado com três pontos seguidos “…”:

Agora vamos reproduzi-lo usando o operador spread/rest

Texto

Descrição gerada automaticamente

Veja um exemplo prático. O código a seguir, recebe uma lista de números e imprime o quadrado dele:

Texto

Descrição gerada automaticamente com confiança baixa

Execício

Construa uma função que reproduza os efeitos da função range(). Ela deve receber até 3 parâmetros: (1) valor de início; (2) valor final; e (3) passo.

Faça os seguintes testes e verifique se os resultados são idênticos aos apresentados a seguir:

  1. range(5) -> [1, 2, 3, 4, 5]
  2. range (6, 11) -> [6, 7, 8, 9, 10, 11]
  3. range(10, 19, 2) -> [10,12,14,16,18]
  4. range(6, 2) -> [6, 5, 4, 3, 2]
  5. range(8, -3, 4) -> [8, 4, 0]

Resposta:

Texto

Descrição gerada automaticamente

Agora, vejamos os testes:

Texto, Carta

Descrição gerada automaticamente

Quer aprender mais sobre Desenvolvimento Web?

Dá uma olhada nesses cursos disponíveis a partir de R$ 27,90 (e ainda dar uma moral para ajudar esse pobre professor a pagar seus boletos) 😉

Por Diego Mariano

Doutor em Bioinformática pela Universidade Federal de Minas Gerais com atuação na área de ciência de dados e aprendizado de máquina aplicados ao aperfeiçoamento de enzimas usadas na produção de biocombustíveis. Mestre em Bioinformática, também pela UFMG, atuando na área de desenvolvimento de sistemas Web para montagem de genomas. Atualmente realiza estágio pós-doutoral no Departamento de Ciência da Computação da UFMG com foco em desenvolvimento de sistemas Web para Bioinformática, análise exploratória e visualização de dados. Tem conhecimentos nas linguagens: PHP, JavaScript, Python, R, Perl, HTML, CSS e SQL.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

error

Compartilhe este post!

Facebook
YouTube
LinkedIn
Instagram