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

Dúvida, outra solução que achei:

Vejam, estou tentando firmar melhor minha base em lógica e com isso tento achar a solução, em alguns trechos das aulas, antes do instrutor mostrar a dele. Com isso, eu escrevi o seguinte pedaço de código para armazenar o valor dos números sorteados no Array:

 let sorteados = [];

    for (let i = 0; i < quantidade; i++) {
        sorteados.push(obterNumeroAleatorio(de, ate));
    }

    alert(sorteados);

O código que a instrutora Jaque utilizou, foi este:

    let sorteados = [];
    let numero;

    for (let i = 0; i < quantidade; i++) {
        numero = obterNumeroAleatorio(de, ate);
        sorteados.push(numero);
    }
    
    alert(sorteados);

Eu sei que é basicamente a mesmíssima coisa (ou não rs), mas se alguém puder me ajudar e explicar se existe alguma vantagem em escrever esse código da segunda maneira, eu adoraria! Teria algo a ver com boas práticas ou algo do tipo?

2 respostas
solução!

Oi Johnatan,

A sua dúvida é bem interessante e aponta para uma questão importante na programação: a legibilidade e a clareza do código.

A diferença entre os dois trechos que você apresentou é sutil, mas vale a pena discutir. No seu código, você faz a chamada de obterNumeroAleatorio(de, ate) diretamente dentro do método push, enquanto no código da instrutora Jaque, a chamada é atribuída a uma variável numero antes de ser adicionada ao array.

Aqui estão algumas considerações sobre essa abordagem:

  1. Legibilidade: A versão da Jaque pode ser considerada mais legível, especialmente para quem está revisando o código. Ter uma variável nomeada, mesmo que temporária, pode ajudar a entender o que está acontecendo, especialmente em situações mais complexas.

  2. Depuração: Se você precisar depurar o seu código, ter a variável numero facilita. Você pode inspecionar o valor dela antes de adicioná-la ao array, o que pode ser útil para entender o fluxo de dados.

  3. Extensibilidade: Caso você queira adicionar lógica extra antes de armazenar o número (como validações ou transformações), ter uma variável intermediária facilita essa tarefa.

Exemplo para verificar se o número gerado é par antes de adicioná-lo ao array:

let sorteados = [];

for (let i = 0; i < quantidade;) {
  let numero = obterNumeroAleatorio(de, ate);
  if (numero % 2 === 0) { // verifica se o numero é par 
    sorteados.push(numero);
    i++; // só incrementa se for par
  }
}

alert(sorteados);

Ambas as abordagens são válidas, mas a escolha pode depender do contexto e do que você considera mais claro para você e para outros que possam ler seu código no futuro.

Portanto, enquanto o seu código funciona perfeitamente e é conciso, a abordagem da instrutora pode trazer benefícios em termos de clareza e manutenção.

tux matrix    Caso este post o tenha ajudado, por favor, marcar como solucionado ☑️. Bons Estudos! 🤓

Perfeito, Luis!

Era algo dessa grandeza que estava procurando!

Toda essa sua explicação só me deixou mais interessado em mergulhar cada vez mais no desenvolvimento e nas boas práticas!

Muito obrigado pela resposta detalhada!

Abraços!