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

Utilizando o While para resolver o exercício

Tentei criar uma outra forma de resolver o exercício utilizando o while loop; achei que, dessa maneira, o código ficou mais fácil de ler e compreender.

function listaArraysNumeros(inicio, fim) {
  let guardarNumerosDoArray = [];
  while (inicio <= fim) {
    guardarNumerosDoArray.push(inicio);
    inicio++;
  }
  return guardarNumerosDoArray;
}

console.log(listaArraysNumeros(10, 20));
2 respostas
solução!

Olá, Diego. Como vai?

Excelente iniciativa! Testar caminhos alternativos e usar o laço while para resolver um problema que originalmente usaria o for é uma das melhores maneiras de dominar a lógica de programação.

O seu código ficou limpo, muito bem estruturado e a lógica está perfeita. O controle do incremento da variável inicio dentro do bloco garante que o laço seja encerrado corretamente quando atingir o valor de fim, evitando o temido loop infinito.

Como boa prática e complemento para os seus estudos em JavaScript, vale ressaltar uma característica importante sobre como você utilizou os parâmetros da função. No seu código, você incrementa o próprio parâmetro inicio (inicio++). No JavaScript, isso funciona perfeitamente porque os parâmetros do tipo número são passados por valor (uma cópia), então as alterações não afetam variáveis externas.

Porém, uma convenção muito adotada no mercado para deixar o código ainda mais legível e evitar a modificação direta de argumentos é criar uma variável de controle interna (geralmente chamada de acumulador ou contador).

Veja como o seu código ficaria seguindo essa boa prática:

function listaArraysNumeros(inicio, fim) {
  let guardarNumerosDoArray = [];
  let numeroAtual = inicio; // Criamos uma variável dedicada ao controle do loop

  while (numeroAtual <= fim) {
    guardarNumerosDoArray.push(numeroAtual);
    numeroAtual++; // Incrementamos a variável de controle interna
  }
  
  return guardarNumerosDoArray;
}

console.log(listaArraysNumeros(10, 20));

A grande vantagem do while nesse cenário é a sua leitura quase literal: "enquanto o número atual for menor ou igual ao fim, continue adicionando". Parabéns por exercitar a sua criatividade e por compartilhar sua solução com a comunidade do fórum!

Espero que possa ter lhe ajudado!

Olá, Evandro. Espero que esteja bem!

Muito obrigado pela ajuda e pela excelente explicação. Consegui entender perfeitamente como o código ficaria seguindo a boa prática sugerida; com certeza vou me atentar mais a isso durante os estudos.

Tenha um excelente dia!