Pavyzdys su parametru per rekursiją JavaScript
Leiskite, naudojant rekursiją, paeiliui atspausdinti masyvo elementus. Tegul masyvas iš pradžių perduodamas funkcijos parametrui:
func([1, 2, 3]);
Leiskite kol kas be rekursijos, naudojant metodą
shift
atspausdinti visus masyvo elementus paeiliui:
function 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ą:
function 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.
Duotas masyvas:
let arr = [1, 2, 3, 4, 5];
Naudodami rekursiją atspausdinkite šio masyvo elementus konsolėje.