Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

210
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda