Parametr vasitesi ile rekursiya numunesi JavaScript-də
Gelin, rekursiya vasitesi ile ardıcıl olaraq massivin elementlerini çıxadaq. İlkin olaraq massivin funksiya parametrine ötürülmesine izin verin:
func([1, 2, 3]);
Gelin, helelik rekursiya istifade etmeden,
shift
metodundan istifade ederek massivin butun elementlerini
növbə ile çıxadaq:
function func(arr) {
console.log(arr.shift()); // 1 çıxardacaq
console.log(arr); // [2, 3] çıxardacaq - massiv kiçildi
console.log(arr.shift()); // 2 çıxardacaq
console.log(arr); // [3] çıxardacaq - massiv kiçildi
console.log(arr.shift()); // 3 çıxardacaq
console.log(arr); // [] çıxardacaq - massiv boşdur
}
func([1, 2, 3]);
Gördüyünüz kimi, shift metodu massivin ilk elementini
kəsib çıxardır ve geri qaytarır, bununla da
massiv özü həmin element qeder kiçilir.
Gelin indi rekursiyadan istifade edek:
function func(arr) {
console.log(arr.shift(), arr);
if (arr.length != 0) {
func(arr);
}
}
func([1, 2, 3]);
Əslinde, əlbəttə ki, massivin elementlerini dövr ile ardıcıl qaydada daxil etmek daha asandır. Verilmiş numuneler sadəcə olaraq rekursiyanın işini basit numuneler üzərinde (real həyatdan olmayan) göstərir. Rekursiyanın daha faydalı tetbiq numuneleri isə sadəcə daha mürəkkəbdir, biz onları bir az aşağıda təhlil edeceyik.
Massiv verilib:
let arr = [1, 2, 3, 4, 5];
Rekursiya vasitesi ile bu massivin elementlerini konsola çıxardın.