1
resposta

É possível eu organizar os números aleatórios de um array em ordem crescente ?

<meta charset="UTF-8">
<script>


    function sorteia() {

       return Math.round(Math.random() * 100);

    }

    function sorteiaNumeros() {

        var senna = [];


        var numero = 1;

        while(numero <= 6) {

              var numeroAleatorio = sorteia();
              var achou = false;

              if (numeroAleatorio !== 0 && numeroAleatorio < 61) {
                     for(var posicao = 0; posicao < senna.length; posicao++) {

                           if(senna[posicao] == numeroAleatorio){
                                achou = true;
                                break;
                           }

                     }

                     if (achou == false) {
                           senna.push(numeroAleatorio);
                           numero++;
                     }
              }

        }

        return senna;
    }

    document.write ("Meu palpite para os próximos números da Mega Senna são os números: " + sorteiaNumeros ());
 </script>

Eu criei esse código para me dar 6 números aleatórios entre 1 e 60, porém eles não estão ordenados de maneira alguma, gostaria de saber se é possível escrever um código para organiza-los de maneira crescente.

1 resposta

Olá victor_zanzini, Para sortear sua array antes de retornar você pode trocar a linha return sennapor:

return senna.sort(function (numeroA, numeroB) {
    if(numeroA === numeroB) { return 0; }
    if(numeroA > numeroB {
        return 1;
    } else {
        return -1;
    }
}

Ou ainda:

return senna.sort(function (numeroA, numeroB) {
    if(numeroA === numeroB) { return 0; }
    return numeroA > numeroB ? 1 : -1;
}

O que isso faz é aplicar o método sort a sua array de números, o método sort aceita uma função de comparação que deve retornar para cada comparação feita um em 3 valores.

Um exemplo de ordenação crescente retorna o seguinte:

  • 0 para quando os itens são iguais.
  • 1 para quando o primeiro é maior que o segundo.
  • -1 para quando o primeiro é menor que o segundo.

Você pode escrever funções de sorteio para sortear objetos mais complexos, você pode saber mais sobre este método de sorteio de arrays na Documentação do MDN

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software