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.