Pavyzdys su parametru per rekursiją JavaScript

Leiskite, naudojant rekursiją, paeiliui atspausdinti masyvo elementus. Tegul masyvas iš pradžių perduodamas funkcijos parametrui:

javascriptfunc([1, 2, 3]);

Leiskite kol kas be rekursijos, naudojant metodą shift atspausdinti visus masyvo elementus paeiliui:

javascriptfunction func(arr) {
  console.log(arr.shift()); // atspausdins 1
  console.log(arr); // atspausdins [2, 3] - masyvas sumažėjo
  
  console.log(arr.shift()); // atspausdins 2
  console.log(arr); // atspausdins [3] - masyvas sumažėjo
  
  console.log(arr.shift()); // atspausdins 3
  console.log(arr); // atspausdins [] - masyvas tuščias
}

func([1, 2, 3]);

Kaip matote, metodas shift iškerpa ir grąžina pirmąjį masyvo elementą, o pats masyvas sumažėja šiuo elementu.

Dabar panaudokime rekursiją:

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

func([1, 2, 3]);

Tiesą sakant, žinoma, paprasčiausia būtų pereiti per masyvo elementus ciklu. Pateikti pavyzdžiai kol kas tiesiog demonstruoja rekursijos veikimą ant paprastų pavyzdžių (ne iš realaus gyvenimo). Naudingesni rekursijos taikymo pavyzdiai yra tiesiog sudėtingesni, juos išnagrinėsime kiek vėliau.

Задание 1

Duotas masyvas:

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

Naudodami rekursiją atspausdinkite šio masyvo elementus konsolėje.