JavaScript-da rekursiýa arkaly parametr bilen mysal

Rekursiýa ýardamynda massiwiň elementlerini yzygiderlik çap edeliň. Massiw başda funksiýanyň parametri hökmünde berilýär:

javascriptfunc([1, 2, 3]);

Indi rekursiýasiz, shift metoduny ulanmak arkaly massiwiň ähli elementlerini biri-birinden çap edeliň:

javascriptfunction func(arr) {
  console.log(arr.shift()); // 1 çap eder
  console.log(arr); // [2, 3] çap eder - massiw kiçeldi
  
  console.log(arr.shift()); // 2 çap eder
  console.log(arr); // [3] çap eder - massiw kiçeldi
  
  console.log(arr.shift()); // 3 çap eder
  console.log(arr); // [] çap eder - massiw boş
}

func([1, 2, 3]);

Görşüňiz ýaly, shift metodi massiwiň birinji elementini kesip alyp gaýdýar, şol bir wagtyň özünde massiw şol element derejesinde kiçelýär.

Indi rekursiýany ulanyp görýäli:

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

func([1, 2, 3]);

Şübhäsiz, massiwiň elementlerini aýlaw arkaly gezmek has ýeňil. Berlen mysallar diňe ýönekeý (gündelik däl) mysallarda rekursiýanyň işleýşini görkezmek üçin. Rekursiýanyň has peýdaly ulanylyş mysallary has çylşyrymlydyr, olara aşakda seredýäris.

Задание 1

Massiwi berlen:

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

Rekursiýa ýardamynda bu massiwiň elementlerini konsola çap ediň.