5
respostas

Como faço para sortear dois elementos dentro de uma array com 10 elementos?

Alguém pode me ajudar?

5 respostas

Boa pergunta, fiquei curioso para fazer isso também, sera que usar uma Math.random() não da certo? talvez se a gente coloca a array dentro do argumento da random, tipo Math.random(array.lenght); sera que dava certo? foi so uma ideia, nao sei se isso funciona. usei o lenght pra ele pegar quantos elementos tem dentro da array. Mas mesmo se isso der certo, ele vai te sortear um numero, e vc quer dois. Seria dois em um mesmo sorteio ne? porque poderia fazer dois random, mas ai, apesar de muito dificil, pode sair o mesmo elemento duas vezes e não estaria certo, vc precisa pegar dois elementos e um unico sorteio.

<meta charset="UTF-8">

<script>
    var numeros = [5, 7, 10, 2, 6];

    var numero = Math.floor(Math.random() *numeros.length);
        console.log(numeros[numero]);

        numSorteado = numeros[numero];
        alert(numSorteado);

</script>

eu consegui bolar esse ai, mas so ta saindo um, vou vê se consigo fazer gerar dois. Será que a partir desse ai vc consegue pensar em como fazer pra gerar dois?

Fala Gabriel, tudo certo? Obrigado por responder. Então, andei pesquisando e achei uma solução que vou compartilhar com vc. Já consegui resolver esse problema e tanmbem consegui colocar os números em ordem crescente... Estou tentando fazer um sistema similar ao da mega-sena (loteria) Próximo passo é dar a opção atraves do prompt para o usuário escolher a quantidade de números que quer apostar e gerar um valor de acordo com essa quantidade. Caso você queira me ajudar eu agradeço. Abraço

<meta charset="utf-8">

<script>


    function sorteia() {
        return Math.round(Math.random() * 60);
    }




    function sorteiaNumeros(quantidade){

        var segredos = [];
        var numero = 1;    

        while(numero <= quantidade){
            segredos.push(sorteia());
            numero++;

        }
        return segredos;
    }

        var segredos = sorteiaNumeros(6); // Quantidade de números sorteados aqui.

        segredos.sort((a, b) => a - b); // Para não ter números repetidos



        function ordemNum(a, b) {   // Função para colocar 
            return a - b            // números em ordem crescente. Em ordem decrescente seria  return b - a
        }

        segredos.sort(ordemNum); // Metodo .sort() auxilia a função para manter os numeros em ordem crescente

        document.write(segredos + "<br>");

</script>

top, ficou muito massa esse seu código. No caso do sorteio, o usuário tem que inserir um número somente, inteiro, ne? ou ele tem que escolher os números que quer apostar? pq na mega sena mesmo a gente aposta, tipo 6 numeros a nossa escolha, ou ate 15 números Não entendi muito bem essa parte. Mas olha o que fiz, pelo menos pra começar a pensar no problema.

Pensando rápido aqui, a gente já sabe que precisa de um prompt e um numero, ai tem que pegar esse numero e trabalhar com ele. Nesse código ai eu só fiz mesmo pedir o numero e botar ele no sorteio, mas ainda falta mais coisas pra ficar bom, estou pensando a respeito, tbm sou um iniciante kkk

<meta charset="utf-8">

<script>


    function sorteia() {
        return Math.round(Math.random() * 60);
    }


    function sorteiaNumeros(quantidade){

        var segredos = [];
        var numero = 1;    

        while(numero <= quantidade){
            segredos.push(sorteia());
            numero++;

        }
        return segredos;
    }

        var numeroUser = parseInt(prompt("Insira um número")); // aqui eu pedi um numero e guardei

        var segredos = sorteiaNumeros(numeroUser); // ai coloquei o dado do usuário aqui 
        // pra entrar na quantidade de sorteio. 

        segredos.sort((a, b) => a - b); // Para não ter números repetidos



        function ordemNum(a, b) {   // Função para colocar 
            return a - b            // números em ordem crescente. Em ordem decrescente seria  return b - a
        }

        segredos.sort(ordemNum); // Metodo .sort() auxilia a função para manter os numeros em ordem crescente

        document.write(segredos + "<br>");

</script>