Jump to content
Thiago Az

Array Retornar Valores Únicos

Recommended Posts

Pessoal bom dia a todos.

 

Gostaria de uma ajuda de vocês tem um array JavaScript onde tenho os valores das cidades repetidos preciso agrupar os usuários da mesma cidade e eliminar as cidades repetidas

 

Exemplo do meu código:

 

var pessoas = [
            { nome: 'Maria', cidade: 'São Paulo' },
            { nome: 'João', cidade: 'São Paulo' },
            { nome: 'Alberto', cidade: 'Rio' },
            { nome: 'Matheus', cidade: 'Curitiba' },
            { nome: 'kalebe', cidade: 'Belo Horizonte' },
            { nome: 'Isaac', cidade: 'Rio' },
            { nome: 'Batista', cidade: 'Curitiba' },
            { nome: 'Carmem', cidade: 'Rio' },
        ];

 

Quero que o retorno seja assim:

 

São Paulo

Maria

João

 

Rio

Alberto

Isaac

Carmen

 

Sem que eu tenha Rio ou outra cidade se repetindo várias vezes. Alguém tem alguma sugestão?

 

Desde já agradeço a todos.

Grato.

Share this post


Link to post
Share on other sites
<script>
var pessoas = [
            { nome: 'Maria', cidade: 'São Paulo' },
            { nome: 'João', cidade: 'São Paulo' },
            { nome: 'Alberto', cidade: 'Rio' },
            { nome: 'Matheus', cidade: 'Curitiba' },
            { nome: 'kalebe', cidade: 'Belo Horizonte' },
            { nome: 'Isaac', cidade: 'Rio' },
            { nome: 'Batista', cidade: 'Curitiba' },
            { nome: 'Carmem', cidade: 'Rio' },
        ];
   
    
        
function selectCidade(cidade) {
    for (var i = 0; i < pessoas.length; i++) {
        if (pessoas[i]['cidade'] == cidade) 
		  //return pessoas[i]['nome'];
          document.write(pessoas[i]["nome"] + "<br>") 
    }
    return null;
}

document.write("<br><b>Rio</b><br>");
selectCidade('Rio');

document.write("<br><b>São Paulo</b><br>");
selectCidade('São Paulo');

document.write("<br><b>Curitiba</b><br>");
selectCidade('Curitiba');

document.write("<br><b>Belo Horizonte</b><br>");
selectCidade('Belo Horizonte');

</script>

 

Share this post


Link to post
Share on other sites
var pessoas = [
    { nome: 'Maria', cidade: 'São Paulo' },
    { nome: 'João', cidade: 'São Paulo' },
    { nome: 'Alberto', cidade: 'Rio' },
    { nome: 'Matheus', cidade: 'Curitiba' },
    { nome: 'kalebe', cidade: 'Belo Horizonte' },
    { nome: 'Isaac', cidade: 'Rio' },
    { nome: 'Batista', cidade: 'Curitiba' },
    { nome: 'Carmem', cidade: 'Rio' },
  ],
  removerDuplicados = function removeDuplicates(value, index, self) {
    return self.indexOf(value) == index;
  }

console.log(
    pessoas
      .map(p => p.cidade)
      .filter(removerDuplicados)
      .map(cidade => {

        return {
			cidade : cidade,
			pessoas : pessoas.filter(p => p.cidade == cidade)
		}
      })
      .sort((x,y) => x.pessoas.length - y.pessoas.length)
	  .reverse()			
)

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Anonicah
      Olá preciso de ajuda com esse exercício. Montei até a parte de formulário + validação de javascrip no dreamweaver mas buguei com o resto. O que eu fiz:
       

      <html>
      <head>
      <title> Formulário CPF validado com Java Script </title>
          
          <script language="javascript" type="text/javascript">
      function validar() {
      var cpf = form1.cpf.value;
          
      if (cpf == "") {
      alert('Preencha o campo com seu cpf');
      form1.cpf.focus();
      return false;
      }
          
      }
      </script>
          
          
      </head>
      <body>
      <form name="form1" action="enviar.php" method="post">
      CPF:
      <input name="cpf" type="text"><br /><br />
      <input type="submit"  onclick="return validar()">
      </form>
      </body>
      </html>
       
       
      EXERCÍCIO
      Criar um formulário simples em html com um único campo CPF;
      Fazer uma validação em javascript antes de fazer o post;
      Consumir o WS https://bi.vidaclass.com.br/utils para consultar informações do CPF enviado pelo form;
      Do retorno obtido exibir na tela:
      Nome, email, telefone
      Se tem compra em saude: Sim | Não
      Quantas compras: (5) ex.
      Se tem farma: Sim | Não
      Se tem dependente: Sim | Não
      Qtd. de dependentes: (2) ex.

      Obtem o token para consumir os endpoints;
      https://bi.vidaclass.com.br/auth
      {
          "company_id": 1,
          "username": "webmaster@vidaclass.com.br",
          "password": "Teste20170705"
      }
      Endpoint para consultar o CPF
      https://bi.vidaclass.com.br/utils
      {
          "action": 4,
          "key": {
              "cpf": 25383193820
          }
      }
    • By iagomonteiro
      Estou criando um jogo de cartas em web, o jogo é bem estilo HS, e estou tendo problemas para adicionar condições de movimentação no drag and drop. Como vocês podem ver eu tenho uma variável mana, e a movimentação das cartas só seria possível de acordo com ela, porém quando adiciono as condições o D&D acaba nem se movimentando mais, pensei em chamar cada função do d&d dentro de uma condição, mas também não funcionou, alguém pode ajudar?
       
      JS
      // Jogador 1
      const fillplace1 = document.querySelector('#fillplace1');
      const fillplace2 = document.querySelector('#fillplace2');
      const fillplace3 = document.querySelector('#fillplace3');
      var fill;
      const empties = document.querySelectorAll('.empty');
      fillplace1.addEventListener('dragstart', enterstart);
      fillplace2.addEventListener('dragstart', enterstart);
      fillplace3.addEventListener('dragstart', enterstart);
      for (const empty of empties) {
          empty.addEventListener('dragover', dragOver);
          empty.addEventListener('dragenter', dragEnter);
          empty.addEventListener('dragleave', dragLeave);
          empty.addEventListener('drop', dragDrop);
      }
      function enterstart(){
          fill = this;
      }
      function dragOver(e) {
          e.preventDefault();
      }
      function dragEnter(e) {
          e.preventDefault();
          this.className += ' hovered';
      }
      function dragLeave() {
          this.className = 'empty';
      }
      function dragDrop(id) {
          this.className = 'empty';
          this.append(fill);
      }
       
      HTML
      <link rel="stylesheet" href="../css/jogar.css" />
       
      <div id="barraGeneral">
          <img src="../imagens/Campo/barraGeneralalfa.png" id="imggeneral" />
      </div>
       
      <div id="persona">
          <img src="../imagens/Personagem/cucapersonagem.png" id="imgpersonagem" />
      </div>
       
      <button id="btpassar" onclick="cont();">Passar Rodada</button>

      <H1 id="campomana">1</H1>
       
      <!-- Mesa das cartas jogador 1-->
      <div class="empty" id="emptyplace1">
      </div>
      <div class="empty" id="emptyplace2">
      </div>
      <div class="empty" id="emptyplace3">
      </div>
      <div class="empty" id="emptyplace4">
      </div>
      <div class="empty" id="emptyplace5">
      </div>
       
      <!-- Mão do jogador 1 -->
      <div class="emptyhand1">
          <div class="fill" draggable="true" id="fillplace1">
              <img src='../imagens/Sorteio/aa.png' draggable='true'>
          </div>
      </div>
       
      <div class="emptyhand2">
          <div class="fill" draggable="true" id="fillplace2">
              <img src='../imagens/Sorteio/aa2.png' draggable='true'>
          </div>
      </div>
       
      <div class="emptyhand3">
          <div class="fill" draggable="true" id="fillplace3">
              <img src='../imagens/Sorteio/aa2.png' draggable='true'>
          </div>
      </div>
       
    • By Anderson Maciel
      Boa tarde pessoal,

      Estou quebrando a cabeça para resolver um problema, tenho uma div dinâmica que carrega uma <table> em uma das colunas deveria apresentar o componente Switchery, esta <table> é montada a partir de uma função PHP que faz o select em uma tabela do banco de dados conforme abaixo:
       
      echo '<table class="table table-hover"> <thead> <tr> <th>Nome</th> <th>Agrupamento</th> <th>Ativo</th> </tr> </thead> <tbody>'; foreach($data as $row) { If ($row['ativo'] == 1) {$vativochk = "checked";} else {$vativochk = "";} echo '<tr> <td>'.$row['nome'].'</td> <td>'.$row['agrupamento'].'</td> <td><input type="checkbox" name="ativo_grid" class="js-switch" '.$vativochk.' disabled="disabled"></td> </tr>'; } echo ' </tbody> </table>'; Aqui está o Ajax que chama e retorna atualizando a DIV:
      //funcoes do grid dos graficos function atualiza_grid_graficos() { $.ajax({ type: "POST", url: "hubfuncind.php", data: { id_tabindicadores_paineis: $('#id_tabindicadores_paineis').val(), acao: "gridgraficos" }, success: function(data) { $('#conteudo').html(data); } }); } O retorno vem certinho, mas apenas o componente Switchery está vindo desconfigurado, ou seja vem um checkbox normal (html).

      O que é mais incrível é que neste mesmo formulário mais acima tenho este mesmo componente funcionando normalmente, somente dentro da DIV dinâmica é que fica desconfigurado conforme imagem anexa.

      Será que alguém já passou por isso?

    • By Dallas20
      Então pessoal,  estou fazendo um pequeno projeto para me aperfeiçoar em javascript e acabei me deparando com o seguinte problema. Eu queria pegar o valor de um input quando o usuário desse um click em um botão e isso foi simples de fazer, porém ao utilizar conceitos de POO e aplicando classes no javascript não consigo fazer essa ação. Gostaria de saber se isso é possível? E como fazer?
       
      Segue o code HTML:
      <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <meta name="author" content="Dallas"> <meta http-equiv="refresh" content="1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link href="../CSS/withdrawal.css" rel="stylesheet"> <script src="../javascript/withdrawal.js"></script> <title>Banco do Brasil</title> </head> <body> <h1>Quanto deseja sacar ?</h1> <input type="number" id="cashInReal"> <button type="button" onclick="alter()"> AQUI</button> </body> </html> code javascript:
      class withdrawal { alter() { alert(document.getElementById('cashInReal').value); } } Desde já muito obrigado.
       
      Att. Dallas
    • By Claudio r Martinez
      Olá amigos, estou sempre navegando pelo forum e sempre encontro a resposta para o que preciso, mas dessa vez não encontrei e estou aqui pedindo um Help.
      Tenho um script em Asp Classico para pagamentos em cartão de crédito.
      no carrinho o usuário pode colocar varios cursos, sendo que cada um tem um limite de parcelas sem juros diferente ou não.
      Sendo assim, precisava encontrar uma forma de encontrar os arrays que tem o mesmo valor para fazer a cobrança noi cartão juntos.
      o sistema fará uma, duas ou mais cobranças diferentes no cartão conforme o numero de parcelas.
      Ex:
      parcelas(1) = 3
      parcelas(2) = 6
      parcelas(3) = 5
      parcelas(4) = 3
       
      preciso montar uma forma de saber quais parcelas são iguais para somar o valor e fazer uma cobrança só com esse numero de parcelas.
      OBS: com essas variaveis acima, o sistema faria 3 cobranças no cartão do cliente, 1 cobrança do valor somado dos itens que tem 3 parcelas selecionadas, 1 cobrança do valor do item que tem 6 parcelas selecionadas e 1 cobrança do item que tem 5 parcelas selecionadas.
      Vocês podem dar um HELP???
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.