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:

javascriptfunc([1, 2, 3]);

Gelin, helelik rekursiya istifade etmeden, shift metodundan istifade ederek massivin butun elementlerini növbə ile çıxadaq:

javascriptfunction 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:

javascriptfunction 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.

Задание 1

Massiv verilib:

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

Rekursiya vasitesi ile bu massivin elementlerini konsola çıxardın.