Пример с параметром через рекурсию в JavaScript

Давайте, с помощью рекурсии последовательно выведем элементы массива. Пусть массив изначально передается параметрам функции:

javascriptfunc([1, 2, 3]);

Давайте пока без рекурсии используя метод shift выведем все элементы массива по очереди:

javascriptfunction func(arr) {
  console.log(arr.shift()); // выведет 1
  console.log(arr); // выведет [2, 3] - массив уменьшился
  
  console.log(arr.shift()); // выведет 2
  console.log(arr); // выведет [3] - массив уменьшился
  
  console.log(arr.shift()); // выведет 3
  console.log(arr); // выведет [] - массив пуст
}

func([1, 2, 3]);

Как вы видите, метод shift вырезает и возвращает первый элемент массива, при этом сам массив уменьшается на этот элемент.

Давайте теперь используем рекурсию:

javascriptfunction func(arr) {
  console.log(arr.shift(), arr);
  
  if (arr.length != 0) {
    func(arr);
  }
}

func([1, 2, 3]);

На самом деле, конечно же, проще всего перебрать элементы массива циклом. Приведенные примеры пока просто демонстрируют работу рекурсии на простых примерах (не жизненных). Более полезные примеры применения рекурсии просто более сложные, мы их разберем чуть ниже.

Задание 1

Дан массив:

javascriptlet arr = [1, 2, 3, 4, 5];

С помощью рекурсии выведите элементы этого массива в консоль.