Want to Contribute to us or want to have 15k+ Audience read your Article ? Or Just want to make a strong Backlink?

De Array para Set e Volta: Uma Jornada Sem ou Com Duplicatas!



Introdução

Tanto Set quanto Array são estruturas de dados essenciais em JavaScript e TypeScript, permitindo que os desenvolvedores manipulem coleções de elementos. Embora possam parecer semelhantes à primeira vista, eles têm diferenças cruciais e usos otimizados. A escolha entre eles pode influenciar tanto a efficiency quanto a clareza do código.



O Básico



Set:

Descrição: É uma coleção de valores onde cada valor deve ser único.

Características Principais:

  • Valores únicos.
  • Inserção e remoção eficientes.
  • Verificação de existência rápida.



Array:

Descrição: Estrutura de dados linear que pode conter vários elementos, incluindo duplicatas.

Características Principais:

  • Pode conter valores duplicados.
  • Acesso direto aos elementos through índice.
  • Uma vasta gama de métodos para manipulação.



Velocidade de Consulta: Set vs Array

Uma das diferenças mais cruciais entre Set e Array é a eficiência ao verificar a existência de um merchandise.



Set:

A principal vantagem do Set é sua velocidade de consulta. Internamente, Set é implementado como uma estrutura de dados de tabela hash. Isso significa que quando você verifica se um merchandise existe no Set usando o método has(), o JavaScript pode localizar esse merchandise extremamente rápido, quase em tempo constante. Por exemplo:

let mySet = new Set(["apple", "banana", "cherry"]); console.log(mySet.has("banana"));  // Isso é tremendous rápido!
Enter fullscreen mode

Exit fullscreen mode

Essa eficiência é especialmente notável quando trabalhamos com grandes conjuntos de dados. Se você tem um Set com milhões de itens e deseja verificar se um determinado merchandise existe, o Set pode fazer isso muito mais rápido do que um Array.



Array:

Quando você tenta verificar a existência de um merchandise em um Array, o JavaScript precisa percorrer potencialmente cada merchandise do Array até encontrar o que está procurando (ou não). Isso é conhecido como uma busca linear e, em casos de pior cenário (por exemplo, o merchandise não existe no Array), pode ser bastante lento. Por exemplo:

let myArray = ["apple", "banana", "cherry"]; console.log(myArray.consists of("banana"));  // Isso pode ser mais lento, especialmente para grandes arrays.
Enter fullscreen mode

Exit fullscreen mode



Adicionando Elementos



Set:

Ao usar add, você garante que cada valor seja único. Se você tentar adicionar um merchandise já existente, ele não fará nada, mantendo a integridade do Set.

let colorsSet = new Set();
colorsSet.add("pink");
colorsSet.add("blue");
colorsSet.add("pink"); // "pink" permanece único no Set.
Enter fullscreen mode

Exit fullscreen mode



Array:

Com push, você simplesmente adiciona um elemento ao closing.

let colorsArray = [];
colorsArray.push("pink");
colorsArray.push("blue");
colorsArray.push("pink"); // Duplicatas são permitidas.
Enter fullscreen mode

Exit fullscreen mode



Verificar o Tamanho



Set:

Verificar o tamanho do Set é feito através da propriedade measurement.

console.log(colorsSet.measurement);  // Exibe o número de elementos no Set.
Enter fullscreen mode

Exit fullscreen mode



Array:

Verificar o tamanho de um Array é feito através da propriedade size.

console.log(colorsArray.size);  // Exibe o número de elementos no Array.
Enter fullscreen mode

Exit fullscreen mode



Esclarecimento sobre a Ordem



Set:

Set mantém a ordem de inserção dos elementos. O primeiro valor que você adicionar será o primeiro a ser retornado durante a iteração.



Array:

A ordem em um Array é mantida pelo índice. O índice inicial é 0, e cada novo elemento adicionado aumenta o índice.



Limpar Todos os Elementos



Set:

Para limpar todos os elementos de um Set, use o método clear.

colorsSet.clear();
Enter fullscreen mode

Exit fullscreen mode



Array:

Para limpar todos os elementos de um Array, você pode simplesmente definir seu size como 0.

colorsArray.size = 0;
Enter fullscreen mode

Exit fullscreen mode



Cenários Adicionais de Uso



Ordenação:

Set não tem um método de ordenação direta. Para ordenar um Set, os desenvolvedores geralmente convertem em um Array, usam o método kind() e, se necessário, convertem de volta para um Set.

let sortedSet = new Set([...colorsSet].kind());
Enter fullscreen mode

Exit fullscreen mode

Por outro lado, o Array tem um método de ordenação embutido.

colorsArray.kind();
Enter fullscreen mode

Exit fullscreen mode



Pesquisa Avançada:

Enquanto Set é otimizado para verificações de existência, o Array oferece mais flexibilidade em pesquisas avançadas, como encontrar um objeto com base em propriedades específicas usando discover() ou filtrar uma coleção de itens com base em critérios específicos usando filter().



Removendo Elementos



Set:

A remoção é direta, pois você take away com base no valor.

colorsSet.delete("pink");
Enter fullscreen mode

Exit fullscreen mode



Array:

Para remover, geralmente utilizamos filter ou outras funções.

colorsArray = colorsArray.filter(coloration => coloration !== "pink");
Enter fullscreen mode

Exit fullscreen mode



Iteração



Set:

A iteração é simples e percorre cada elemento.

colorsSet.forEach(coloration => console.log(coloration));
Enter fullscreen mode

Exit fullscreen mode



Array:

Related ao Set, mas com acesso direto ao índice também.

colorsArray.forEach((coloration, index) => console.log(`Index: ${index}, Coloration: ${coloration}`));
Enter fullscreen mode

Exit fullscreen mode



Transformação



Set:

Não possui um método direto de transformação. Isso é uma das razões pela qual os desenvolvedores frequentemente convertem Units para Arrays, fazem as transformações desejadas no Array e depois, se necessário, convertem de volta para um Set.

let capitalizedColorsSet = new Set([...colorsSet].map(coloration => coloration.toUpperCase()));
Enter fullscreen mode

Exit fullscreen mode



No Array:

Arrays possuem o método map diretamente.

let capitalizedColorsArray = colorsArray.map(coloration => coloration.toUpperCase());
Enter fullscreen mode

Exit fullscreen mode



Cenários de Uso Recomendados

Remoção de Duplicatas: Set é very best devido à sua garantia de unicidade.

const numbers = [1, 2, 2, 3, 3]; const distinctive = [...new Set(numbers)];
Enter fullscreen mode

Exit fullscreen mode

Verificações Rápidas de Existência: Com a eficiência de Set e o método has, verificações são rápidas.

if (colorsSet.has("blue")) { console.log("Blue exists within the Set!"); }
Enter fullscreen mode

Exit fullscreen mode

Transformações Frequentes e Complexas: Arrays, com sua vasta gama de métodos integrados, são ideais para transformações.

const squaredNumbers = [1, 2, 3].map(num => num * num);
Enter fullscreen mode

Exit fullscreen mode

Quando a Duplicidade é Necessária: Arrays permitem armazenar valores repetidos, o que é útil em cenários como registros de votos, logs de ação do usuário ou históricos de transações.



Conclusão

Ao closing desta exploração entre Set e Array, esperamos que alguns pontos-chave estejam claros:



Unicidade vs Duplicidade:

  • Use Set quando você precisa garantir que cada merchandise seja único.
  • Use Array quando a duplicidade é aceitável ou desejada.



Eficiência de Consulta:

  • Para verificações rápidas de existência, especialmente em grandes conjuntos de dados, o Set é o vencedor claro. No entanto, se você precisar de operações mais complexas, como mapeamento, filtragem ou redução, o Array oferece uma ampla variedade de métodos embutidos..



Manipulação de Dados:

  • Array é a escolha para transformações mais complexas devido à sua vasta gama de métodos integrados, como map, filter e cut back.



Flexibilidade

  • Lembre-se de que você pode facilmente converter entre Set e Array usando técnicas de espalhamento (…), o que oferece muita flexibilidade no manuseio de coleções de dados.

Dica Didática: A escolha entre Set e Array muitas vezes não é preto no branco. A decisão pode depender do problema específico, dos dados e das operações necessárias. Portanto, encorajamos você a experimentar ambas as opções e a medir a efficiency em cenários do mundo actual. Lembre-se de que a melhor maneira de internalizar esses conceitos é através da prática. Crie pequenos exemplos, teste os métodos discutidos e observe o comportamento de Set e Array em diferentes cenários.

Lembre-se: A escolha da ferramenta certa para o trabalho não só melhora a eficiência do seu código, mas também sua clareza e manutenibilidade. Feliz codificação!

Add a Comment

Your email address will not be published. Required fields are marked *

Want to Contribute to us or want to have 15k+ Audience read your Article ? Or Just want to make a strong Backlink?