ES6: spread operator

O carinha spread nos permite extrair/expandir dados de um array agilizando a nossa vida. Confuso? Acho que não consegui explicar. Vamos à prática. Imaginemos os seguintes arrays:

let mortalKombat = ['Scorpion', 'Sub Zero', 'Liu Kang'];
let newCharacters = ['Reptile', 'Kitana'];

Se tivéssemos que adicionar os novos lutadores ao array principal, poderíamos tentar algo assim:

mortalKombat.push(newCharacters);
console.log(mortalKombat);
// ['Scorpion', 'Sub Zero', 'Liu Kang', ['Reptile', 'Kitana']]

Adicionou mas não ficou do jeito que queríamos. Teríamos então que tratar isso antes, algo mais ou menos assim:

newCharacters.forEach(function(fighter) {
mortalKombat.push(fighter);
});
console.log(mortalKombat);
// ['Scorpion', 'Sub Zero', 'Liu Kang', 'Reptile', 'Kitana']

O operador spread chega chutando a porta e deixando tudo bonitão.

mortalKombat.push(...newCharacters);
console.log(mortalKombat);
// ['Scorpion', 'Sub Zero', 'Liu Kang', 'Reptile', 'Kitana']

Aqui você encontra um JS Bin com os exemplos acima.

Ver mais posts