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

212
Vistas
Recursividad en Js

¿Puede alguien explicarme por qué necesitamos (n-1) en el siguiente código?

 function multiply(arr, n) { if (n <= 0) { return 1; } else { return multiply(arr, n - 1) * arr[n - 1]; } }

Entiendo que tenemos un caso base de if (n <= 0){return 1} para que el código no se repita para siempre, pero no entiendo (n-1) y [n-1] en el caso recursivo de return multiply(arr, n - 1) * arr[n - 1]; .

Cualquier ayuda es muy apreciada.

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

0

Parece que esta función está destinada a comenzar con el último elemento de la matriz y operar recursivamente en cada elemento anterior. Esta es la razón por la cual, al llamar a la función de forma recursiva, debe pasar el siguiente elemento anterior, es decir, n-1 . Esto acerca la función al caso base con cada iteración.

about 4 years ago · Juan Pablo Isaza Denunciar

0

La función podría mejorarse, pero puede entenderla tal como está agregando algunos registros de depuración...

 function multiply(arr, n) { if (n <= 0) { return 1; } else { console.log(`recurse to multiply ${arr[n-1]} by elements in [${arr.slice(0,n-1)}]`); return multiply(arr, n - 1) * arr[n - 1]; } } multiply([1, 2, 3], 3);

Una implementación más clara no requeriría el parámetro de longitud y sería más clara acerca de la descomposición...

 // if the array has a first element, multiply it by the remainder of the array function multiply(arr) { return arr.length ? arr[0] * multiply(arr.slice(1)) : 1; } console.log(multiply([1,2,3]))

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esta función simplemente multiplica todos los elementos de la matriz dada. Inicialmente, debe pasar la matriz y su longitud como n .

El último elemento de cualquier matriz es n-1 . Por lo tanto, en la primera iteración, tomará el último elemento y lo multiplicará más hasta que llegue a 0. Luego se detendrá.

Solo intente ejecutar esta función mentalmente en su cabeza con algunos ejemplos simples y lo obtendrá.

about 4 years ago · Juan Pablo Isaza 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