Você está aqui: JavaScript ::: Dicas & Truques ::: Set (Conjunto)

Como testar se um array possui elementos duplicados em JavaScript usando um Set

Quantidade de visualizações: 505 vezes
Nesta dica nós tiramos proveito da propriedade length do objeto Array do JavaScript e também da propriedade size do objeto Set para verificarmos se um array (vetor ou matriz) possui itens repetidos, ou seja, itens duplicados.

A idéia explorada nesta dica é a criação de um objeto Set a partir dos elementos de um array. Como sabemos que um Set não aceita itens repetidos, basta testarmos os valores das propriedades length e size dos dois objetos.

Veja a página HTML completa para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<!doctype html>
<html>
<head>
  <title>Arrays em JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos criar um array de inteiros
  var valores = new Array(7, 1, 2, 3, 4, 3);
  document.write("O conteúdo do array é: " +
    valores + "<br>");

  // vamos testar se o array possui valores
  // duplicados
  if(valores.length != new Set(valores).size){
    document.write("O array possui elementos duplicados");
  }
  else{
    document.write("O array não possui elementos duplicados");
  }
</script>
  
</body>
</html>

Ao executar este código JavaScript nós teremos o seguinte resultado:

O conteúdo do array é: 7,1,2,3,4,3
O array possui elementos duplicados

Link para compartilhar na Internet ou com seus amigos:

JavaScript ::: Dicas & Truques ::: Set (Conjunto)

Como retornar elementos presentes no primeiro vetor e não presentes no segundo vetor em JavaScript usando o objeto Set

Quantidade de visualizações: 1352 vezes
Este é um código muito interessante de ser feito em JavaScript. Dados dois arrays a e b, temos que retornar os números que estão presentes no primeiro array, mas que não estão presentes no segundo array.

Este código pode ser escrito usando diversas abordagens. Nesta dica mostrarei como resolvê-lo usando um objeto Set, adicionado à linguagem JavaScript na revisão ECMAScript 2015, também chamada de ES6 e ECMAScript 6.

Vamos ao código então:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
  <title>O objeto Set do JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // primeiro vetor
  var a = [4, 8, 1, 23, 65];
  // segundo vetor
  var b = [23, 8, 90, 3, 7];
  // vetor resultante
  var c = [];
  
  // criamos um objeto Set e guardamos nele os
  // elementos do segundo vetor
  var set = new Set();
  for (var i = 0; i < b.length; i++){
    set.add(b[i]);
  }
  
  // agora varremos o primeiro vetor e usamos
  // o método has() do objeto Set para verificar se
  // o valor não está contido nele
  for (var i = 0; i < a.length; i++){
    if(!set.has(a[i])){
      c.push(a[i]);
    }
  }
  
  document.writeln("Primeiro vetor: " + a);
  document.writeln("<br>Segundo vetor: " + b);
  document.writeln("<br>Resultado: " + c);
</script>

</body>
</html>

Ao executar este código JavaScript nós teremos o seguinte resultado:

Primeiro vetor: 4, 8, 1, 23, 65
Segundo vetor: 23, 8, 90, 3, 7
Resultado: 4, 1, 65

Note que os valores 4, 1 e 65 estão presentes no primeiro array mas não estão presentes no segundo.


JavaScript ::: Dicas & Truques ::: Operadores de Manipulação de Bits (Bitwise Operators)

JavaScript Avançado - Como usar o operador de bits & (E/AND sobre bits) da linguagem JavaScript

Quantidade de visualizações: 1198 vezes
O operador de bits & (E/AND sobre bits) da linguagem JavaScript é usado quando queremos comparar os bits individuais de dois valores integrais (inteiros) e produzir um terceiro resultado. Os bits no resultado serão configurados como 1 se os bits correspondentes nos dois outros valores foram 1. Em caso contrário os bits são configurados como 0.

Para quem gosta de Lógica Matemática, ou a Tabela Verdade da Lógica de Boole, vai se lembrar do conectivo "^", que diz que a proposição resultante da conjunção só será verdadeira quando as proposições simples individuais forem verdadeiras. O operador de bits & do JavaScript é similar ao conectivo "^" da Lógica Proposicional.

Vamos analisar os seguintes valores binários:

a) 0101 (5 decimal)
b) 0100 (4 decimal)

Quando aplicamos o operador & nestes dois valores teremos o seguinte resultado:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

0101
0100
----
0100

Veja que o resultado é 0100, uma vez que apenas o segundo bit de cada valor está configurado como 1. Vamos ver isso em JavaScript agora. Observe o seguinte trecho de código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
  <title>Manipulação de Bits em JavaScript</title>
</head>
 
<body>

<script type="text/javascript">
  var a = 5;
  var b = 4;
  var c = a & b;
  
  // exibe o resultado (em binário e em decimal)
  document.writeln("a = " + obterBits(a) + " (" + a + ")");
  document.writeln("<br>b = " + obterBits(b) + " (" + b + ")");
  document.writeln("<br>a & b = " + obterBits(c) + " (" + c + ")");
  
  // função auxiliar que converte um decimal em sua representação em bits
  function obterBits(valor){
    var mascara = 1 << 31; // 10000000 00000000 00000000 00000000
    var buffer = ""; // um buffer para guardar os bits dos bytes
    
    for(var i = 1; i <= 32; i++){
      // compara os bits individuais dos dois valores inteiros
      if((valor & mascara) == 0){
    	buffer = buffer + "0";
      }
      else{
    	buffer = buffer + "1";
      }
      
      valor = valor << 1; // desloca uma posição para a esquerda
      // Cada troca à esquerda corresponde à multiplicação do
      // valor por 2
      
      if(i % 8 == 0){ // completou um byte?
        buffer = buffer + " ";
      }
    }
    
    return buffer;
  }
</script>

</body>
</html>


Ao executar este código teremos o seguinte resultado:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

    a = 00000000 00000000 00000000 00000101 (5) 
    b = 00000000 00000000 00000000 00000100 (4)
a & b = 00000000 00000000 00000000 00000100 (4)



JavaScript ::: DOM (Document Object Model) ::: Navegação e Pesquisa de Nós (Nodes)

Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScript

Quantidade de visualizações: 8288 vezes
Como obter o tipo de um nó no DOM (Document Object Model) usando a propriedade nodeType a partir de seus códigos JavaScript

A propriedade nodeType, definida no World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1, pode ser usada quando precisamos obter o tipo de um determinado nó (node) na hierarquia de elementos HTML no DOM (Document Object Model). Esta propriedade retorna um valor inteiro indicando o tipo de nó sendo testado. Os valores mais comuns são 1 (nó elemento) e 3 (nó texto).

Veja uma página HTML na qual temos um parágrafo e um elemento span. Na primeira vez nós vamos obter uma referência ao parágrafo e testar o tipo do nó. Na segunda vez nós obtemos uma referência ao primeiro nó filho do elemento span, o que resultará em seu conteúdo sendo testado. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudos JavaScript</title>

<script type="text/javascript">
  function obterNodeType(){
    // vamos obter uma referência ao parágrafo com o id "paragrafo"
    var elem = document.getElementById("paragrafo");

    // vamos obter o tipo de nó deste elemento
    var tipo = elem.nodeType;

    // vamos mostrar o resultado
    window.alert("O tipo deste elemento é: " + tipo);
    
    // vamos obter uma referência ao span com o id "frase"
    elem = document.getElementById("frase");

    // vamos obter o tipo de nó do primeiro filho deste elemento
    tipo = elem.firstChild.nodeType;

    // vamos mostrar o resultado
    window.alert("O tipo deste elemento é: " + tipo);
  }  
</script>

</head>
<body>

<p id="paragrafo">Sou um parágrafo</p>

<span id="frase">Veja esta frase</span>

<br><button onclick="obterNodeType()">Obter tipo do nó (nodeType)</button>

</body>
</html>

Note que esta propriedade é somente-leitura, ou seja, não podemos modificar seu valor em tempo de execução.

A propriedade nodeType pode ser obtida a partir dos seguintes elementos: a, abbr, acronym, address, applet, area, b, base, basefont, bdo, bgsound, big, blink, blockquote, body, br, button, caption, center, cite, code, col, colgroup, comment, dd, del, dfn, dir, div, dl, dt, em, embed, fieldset, font, form, frame, frameset, h1, h2, h3, h4, h5, h6, head, hr, html, i, iframe, img, input:button, input:checkbox, input:file, input:hidden, input:image, input:password, input:radio, input:range, input:reset, input:search, input:submit, input:text, ins, isindex, kbd, keygen, label, legend, li, link, listing, map, marquee, menu, meta, nobr, noframes, noscript, object, ol, optgroup, option, p, param, plaintext, pre, q, rt, ruby, s, samp, script, select, small, span, strike, strong, style, sub, sup, table, tbody, td, textarea, tfoot, th, thead, title, tr, tt, u, ul, var, wbr, xml e xmp.

Esta dica foi escrita e testada no Internet Explorer 8 e Firefox 3.6.


Desafios, Exercícios e Algoritmos Resolvidos de JavaScript

Veja mais Dicas e truques de JavaScript

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 18 usuários muito felizes estudando em nosso site.