Usando Set em Javascript

Eu sempre amei javascript. Agora, com a melhorias vindas no ES2015 (ou ES6), uma das coisas mais legais que vi até agora foi a introdução do Set. O Set é como se fosse um tipo de array turbinado, mas ele só pode receber valores únicos e referências à objetos.

Para criar um Set, faça o seguinte:

const meuSet = new Set();

Os métodos principais que você pode usar com Set são:
– add
– has
– delete
– clear
– entries
– keys (ou values)

E como atributo, o Set só possui o size, que retorna a quantidade de itens armazenados.

Para adicionar um item, você pode fazer:

meuSet.add("Item1");
meuSet.add("Item2");
meuSet.add("Item3");

Se você repetir a inserção do mesmo item, não será retornado nenhum erro e o objeto não será duplicado.

Para remover um item, o processo é o mesmo:

meuSet.delete("Item1");

Você pode passar por todos os itens do objeto usando um forEach:

meuSet.forEach(item => {
  console.log(item);
})

O método entries retorna deixa você iterar o objeto usando for, como se fosse um Map:

for (let [key, value] of meuSet.entries())
   console.log(key, value);

Os métodos keys e values, retornam iteradores com um cursor para que você possa percorrer o objeto. O funcionamento é basicamente igual entre os dois:

const meuSetEntries = meuSet.keys();

// Pegar o primeiro item:
meuSetEntries.next();

// Vai retornar:
// {value: "Item2", done: false}

Enquanto o cursor não chega ao final do objeto, o valor done vai sempre ser igual a false. Quando você chegar ao final, o value será undefined e done será true.

Se você quiser verificar se um item existe em um conjunto Set, você pode usar o has:

meuSet.has("Item1"); // false
meuSet.has("Item2"); // true

Para remover todos os itens, use o clear:

meuSet.clear();

Se você verificar o tamanho do Set, agora deverá ser zero:

console.log(meuSet.size); // 0

 

Cuidado! O Set ainda não é suportado em todos os navegadores, então, se você quiser já começar a usar, eu recomendo a utilização de um transliterador como o Babel.

Para mais informações, você pode ver a referência do Set na MDN.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s