Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Quantidade analisando a proteção

  for (let i=0; i < quantidade; i++) {//introduz a posição do array
        if(quantidade > (ate - de)){ 
            alert("quantidade superior, retorne");
            return;
        }

Fiz um pouco diferente da sugestão, gostaria de uma analise PS:Ignore a mensagem de alerta

2 respostas

Olá Ivan! Tudo bem?

O trecho de código que você postou está no caminho certo, mas vou fazer uma análise para ver se podemos melhorar ou ajustar algo.

No seu código, você está verificando se quantidade é maior que (ate - de). Isso é uma boa abordagem, pois garante que a quantidade de números a serem sorteados não exceda o intervalo. Se isso ocorrer, você exibe uma mensagem de alerta e interrompe a execução com um return.

Aqui está um exemplo de como isso pode ser feito:

for (let i = 0; i < quantidade; i++) {
    if (quantidade > (ate - de + 1)) { 
        alert("quantidade superior, retorne");
        return;
    }

    let numero = obterNumeroAleatorio(de, ate);

    while (sorteados.includes(numero)) {
        numero = obterNumeroAleatorio(de, ate);
    }

    sorteados.push(numero);
}

Note que adicionei + 1 na condição quantidade > (ate - de + 1), pois o intervalo é inclusivo, então precisamos considerar o número inicial também.

Lembre-se de que a função obterNumeroAleatorio(de, ate) deve ser capaz de gerar números dentro do intervalo especificado, incluindo os limites.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.
solução!

entendido, está parecido, na logica, com o codigo feito, creio que outra diferença foi a declaração da variavel numero

//código omitido
    let numero;


    for (let i=0; i < quantidade; i++) {//introduz a posição do array
        if(quantidade > (ate - de +1)){  // Inclusão 
            alert("quantidade superior, retorne");
            return;
        }
        numero = obterNumeroAleatorio(de, ate);
        while(sorteador.includes(numero)){ //INCLUDES verifca se o  DADO ESTÁ PRESENTE NO ARRAY
            numero = obterNumeroAleatorio(de, ate);//volta para a função obterNumeroAleatorio ate que numero não seja repetido
        } 

        sorteador.push(numero) // coloca o numero dentro do array
    }