Задать вопрос
@Sherlok_homs

Как понять рекурсию в коде ниже?

Изучаю JS, помогите разобрать код рекурсии

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


Объясните, пожалуйста, логику последнего return. Почему multiply([1], 0) будет равно 0? А multiply([2, 3, 4], 1) будет равно 2? Или multiply([2, 3, 4, 5], 3) равно 9?
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Простой 6 комментариев
Решение пользователя AUser0 К ответам на вопрос (3)
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Первый вопрос: потому что срабатывает условие n <= 0, и возвращается 0.

Второй вопрос: потому что число 2 в массиве находится в нулевом (1 - 1 = #0) элементе массива, именно оно суммируется с финальным 0, и эта сумма возвращается.

Третий вопрос: получается стартовый элемент 3 - 1 = #2, значит суммируются числа 4 + 3 + 2 + 0 = 9, потому что именно число 4 находится во #2-ом элементе массива.
Ответ написан
Комментировать