[Leve em conta que estou bem no começo, então os exercícios não usam ainda métodos complexos, no máximo um arr.push()]
Preciso criar uma função que recebe 3 parâmetros. Os dois primeiros delimitam um intervalo. A função deve retornar um array contendo os menores números pares dentro do intervalo. A quantidade de elementos nesse array deve ser igual ao 3o parâmetro passado.
** Obs¹: O 1o parâmetro sempre será menor que o 2o parâmetro
** Obs²: No intervalo passado sempre haverá números pares suficientes para a quantidade passada
** Obs³: A função deve retornar os menores números pares possíveis dentro do intervalo
Exemplo: se for passado os valores “2”, “10”, “3”, a função deve retornar o array [4,6,8]
Exemplo: se for passado os valores “2”, “10”, “2”, a função deve retornar o array [4,6]
Criei o seguinte código:
function intervaloPares(inicio, fim, quantidade) {
let qtdePares = [];
for (let i = inicio; i < fim; i ++) {
if (i % 2 == 0 && qtdePares.length <= quantidade) {
qtdePares.push(i);
}
return qtdePares;
}
}
Porém, supondo que eu chame a função com os parâmetros (2, 10, 3), ele está me retornando [2], e na verdade deveria estar retornando [4, 6, 8]. Parece que o meu “for” não está passando pela iteração e somando 1 ao valor de “i”, até que “i” se torne maior que a quantidade (3º parâmetro) e então saia do laço. Enquanto isso, quando minha condição do resto da divisão for igual a zero, ele adiciona o elemento no array que criei vazio. Faz sentido o que eu pensei ?
Alguem consegue me ajudar ? >.<
Obrigado.