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:
func([1, 2, 3]);
Indi rekursiýasiz,
shift
metoduny ulanmak arkaly massiwiň ähli elementlerini biri-birinden çap edeliň:
function 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:
function 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.
Massiwi berlen:
let arr = [1, 2, 3, 4, 5];
Rekursiýa ýardamynda bu massiwiň elementlerini konsola çap ediň.