Função Recursiva freecodecamp

07/09/2022

0

Consegui entender uma função recursiva de um o conceito de função recursiva, mas estou a horas tentando entender somente o return de uma função exemplo que vi hoje cedo
let arr = [1, 2, 3, 4]
function multiply(arr, n) {
    if (n <= 0) {
      return 1;
    } else {
      return multiply(arr, n - 1) * arr[n - 1];
    }
  } multiply(arr, 4)

o return é composto de 3 elementos, o arr (array), n -1 (n decrementado) e o arr[n-1] (valor indiciado do array que realiza a multiplicação). A minha duvida é: como o valor indiciado do array multiplica apenas o arr, e não o n-1? sendo n = 4, n-1 seria igual a 3, porque não é feita a conta 3 * arr[3]? porque o n-1 é ignorado e só é multiplicado o arr? ao meu ver, o return ficaria: ( arr *arr[n-1, (n-1)*arr[n-1]). Não consigo entender porque o n que é retornado pra função não é multiplicado.
Pedro

Pedro

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar