spread Operator
o spread operator “espalha” os valores em um iterável (arrays, strings) em zero ou mais argumentos ou elementos. Vou explicar exatamente o que isso significa mais tarde. Mas, primeiro, vejamos como nós pode combinar duas matrizes:
Este método funciona e faz exatamente o que queremos: tomar arr2 e colocá-lo na final do arr1. Mas isso exige que nos lembremos do método concat. Seria melhor poder fazer algo assim: . Aqui está o que acontece se tentamos que:
Agora que já acabaram com uma matriz aninhada. Poderíamos usar um loop for, mas isso é muito código para realizar uma tarefa relativamente simples. Graças ao ES6, agora temos uma maneira mais fácil de combinar dois arrays: o operador spread.
como mencionado acima, o operador spread pega uma matriz (ou qualquer iterável) e a espalha valores. Vamos dar uma olhada em como funciona:
Que é muito mais simples! O operador spread ( … ) pega os valores de arr1 e os espalha pelo arr2. Podemos também escrever o exemplo acima como este:
A propagação operador pode também ser usado em uma chamada de função. Digamos que tenhamos uma função que leva vários parâmetros e temos os parâmetros que queremos passar armazenados em uma matriz. Como podemos chamar a função e passar a matriz de parâmetros? Aqui está como gostaríamos de o fazer antes de ES6:
mais uma vez, seria bom ser capaz de fazer algo como isto: mySum(params). Aqui está o que acontece se tentamos que:
Utilizando a propagação do operador, podemos escrever o exemplo acima da seguinte maneira:
Como você pode ver, a propagação do operador toma a matriz de parâmetros e espalha-los por todo o argumentos na chamada de função. Mas e se precisarmos de nossa função para poder trabalhar com um número desconhecido de parâmetros? É aí que entra o parâmetro rest.