Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

154
Vistas
Generando un rango de números a través de la recursividad

Acabo de empezar a aprender JS en Freecode y hacer esa tarea Use Recursion to Create a Range of Numbers). La función debe devolver una matriz de enteros que comienza con un número representado por el parámetro startNum y termina con un número representado por el parámetro endNum. El número inicial siempre será menor o igual que el número final. Su función debe usar recursividad llamándose a sí misma y no usar bucles de ningún tipo. También debería funcionar para los casos en los que tanto startNum como endNum sean iguales.

Mi solución está abajo

 let myVal = []; function rangeOfNumbers(startNum, endNum) { if (startNum <= endNum) { myVal.push(startNum); startNum++; rangeOfNumbers(startNum, endNum); } return myVal; } rangeOfNumbers(2, 5);

Normalmente debería funcionar bien, pero no sé por qué no es aceptable.

about 4 years ago · Juan Pablo Isaza
4 Respuestas
Responde la pregunta

0

Puede eliminar la variable myVal por completo utilizando la sintaxis extendida para que su función devuelva la matriz de números de forma recursiva.

 function rangeOfNumbers(startNum, endNum){ if(startNum <= endNum){ return [startNum,...rangeOfNumbers(startNum+1, endNum)]; } return []; } console.log(rangeOfNumbers(2,5));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Para llamarlo de forma recursiva, debe dar a la matriz para que funcione:

 function rangeOfNumbers(startNum, endNum, myVal){ if(startNum <= endNum){ myVal.push(startNum); startNum++; return rangeOfNumbers(startNum, endNum, myVal); } return myVal; }

y llamar a la función de esta manera:

 rangeOfNumbers(2, 5, []);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Hay varias maneras de lograr esto.

 let myVal = []; function rangeOfNumbers(startNum, endNum, myVal) { if (startNum === endNum) { myVal.push(startNum); return myVal; } myVal.push(startNum); return rangeOfNumbers(startNum + 1, endNum, myVal); } console.log(rangeOfNumbers(1, 10, myVal)); //[1, 2, 3, 4, 5,6, 7, 8, 9, 10]

O, como no puede pasar la matriz a la función, intente esto en su lugar:

 let myVal = []; function rangeOfNumbers(startNum, endNum) { if (startNum === endNum) { return myVal.push(startNum); } myVal.push(startNum); return rangeOfNumbers(startNum + 1, endNum); } rangeOfNumbers(1, 10); console.log(myVal); //[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
about 4 years ago · Juan Pablo Isaza Denunciar

0

Me funciono asi...Saludos

function rangeOfNumbers(startNum, endNum) {
  if (startNum <= endNum) {
    const countArray = rangeOfNumbers(startNum + 1, endNum);
    countArray.unshift(startNum);
    return countArray;
  } return [];
}
console.log(rangeOfNumbers(1, 5));//[ 1, 2, 3, 4, 5 ]

about 4 years ago · Andreina Del Carmen Lacruz Moreno Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda