JavaScript-ում ռեկուրսիայի միջոցով պարամետրի օրինակ

Եկեք, ռեկուրսիայի միջոցով հաջորդաբար արտածենք զանգվածի տարրերը։ Թող զանգվածը սկզբում փոխանցվի ֆունկցիայի պարամետրերին։

javascriptfunc([1, 2, 3]);

Եկեք առայժմ առանց ռեկուրսիայի՝ օգտագործելով shift մեթոդը, արտածենք զանգվածի բոլոր տարրերը հերթով։

javascriptfunction func(arr) {
  console.log(arr.shift()); // կարտածի 1
  console.log(arr); // կարտածի [2, 3] - զանգվածը փոքրացել է
  
  console.log(arr.shift()); // կարտածի 2
  console.log(arr); // կարտածի [3] - զանգվածը փոքրացել է
  
  console.log(arr.shift()); // կարտածի 3
  console.log(arr); // կարտածի [] - զանգվածը դատարկ է
}

func([1, 2, 3]);

Ինչպես տեսնում եք, shift մեթոդը հանում և վերադարձնում է զանգվածի առաջին տարրը, միաժամանակ ինքը՝ զանգվածը, փոքրանում է այդ տարրով։

Եկեք հիմա օգտագործենք ռեկուրսիա։

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

func([1, 2, 3]);

Իրականում, իհարկե, ավելի հեշտ է թվարկել զանգվածի տարրերը ցիկլով։ Բերված օրինակները պարզապես ցույց են տալիս ռեկուրսիայի աշխատանքը պարզ օրինակների վրա (ոչ կյանքից վերցված)։ Ավելի օգտակար օրինակներ ռեկուրսիայի կիրառման համար պարզապես ավելի բարդ են, մենք դրանք կվերլուծենք մի փոքր ավելի ուշ։

Задание 1

Տրված է զանգված։

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

Ռեկուրսիայի միջոցով արտածեք այս զանգվածի տարրերը կոնսոլում։