Funksiya parametrlərinin destrukturizasiyası JavaScript-də

Destrukturizasiyanın başqa bir çox əhəmiyyətli istifadə sahəsi var - funksiya parametrlərinin ötürülməsi. Məqsəd belədir: əgər funksiya parametr kimi massiv qəbul edirsə, biz birbaşa funksiyanın təyinində həmin massivi necə destrukturizə edəcəyimizi təyin edə bilərik.

Nümunəyə baxaq. Tutaq ki, bizim il, ay və günü qəbul edən parametri olan bir funksiyamız var:

javascriptfunc([2025, 12, 31]);

Gəlin birbaşa funksiya parametrində göstərək ki, bu massiv hansı dəyişənlərə parçalanmalıdır:

javascriptfunction func([year, month, day]) {
  console.log(year);  // 2025 çap edəcək
  console.log(month); // 12 çap edəcək
  console.log(day);   // 31 çap edəcək
}

Yuxarıda göstərilən konstruksiya funksiyanın bir parametri kimi nəzərə alınmalıdır. İstəsəniz, başqa parametrlər də əlavə edə bilərsiniz:

javascriptfunc('str1', [2025, 12, 31], 'str2');

function func(param1, [year, month, day], param2) {
  console.log(param1); // 'str1' çap edəcək
  
  console.log(year);   // 2025 çap edəcək
  console.log(month);  // 12 çap edəcək
  console.log(day);    // 31 çap edəcək
  
  console.log(param2); // 'str2' çap edəcək
}

Növbəti nümunədə isə funksiyanın birinci və ikinci parametri kimi massivlər ötürülür və biz onların hər ikisini destrukturizə edirik:

javascriptfunc([2025, 12, 31], [2026, 11, 30]);

function func([year1, month1, day1], [year2, month2, day2]) {
  console.log(year1);  // 2025 çap edəcək
  console.log(month1); // 12 çap edəcək
  console.log(day1);   // 31 çap edəcək
  
  console.log(year2);  // 2026 çap edəcək
  console.log(month2); // 11 çap edəcək
  console.log(day2);   // 30 çap edəcək
}
Задание 1

Aşağıdakı kodu öyrənilən nəzəriyyəyə uyğun olaraq destrukturizasiya ilə dəyişin:

javascriptfunction func(employee) {
  let name       = employee[0];
  let surname    = employee[1];
  let department = employee[2];
  let position   = employee[3];
  let salary     = employee[4];
}

func( ['John', 'Smit', 'development', 'programmer', 2000] );
Задание 2

Aşağıdakı kodu öyrənilən nəzəriyyəyə uyğun olaraq destrukturizasiya ilə dəyişin:

javascriptfunction func(employee) {
  let name     = employee[0];
  let surname  = employee[1];
  let info     = employee[2];
}

func( ['John', 'Smit', 'development', 'programmer', 2000] );
Задание 3

Aşağıdakı kodu öyrənilən nəzəriyyəyə uyğun olaraq destrukturizasiya ilə dəyişin:

javascriptfunction func(employee) {
  let name       = employee[0];
  let surname    = employee[1];
  let department = employee[2];
  
  let position;
  if (arr[3] !== undefined) {
    position = arr[3];
  } else {
    position = 'junior';
  }
}

func( ['John', 'Smit', 'development'] );
Задание 4

Aşağıdakı kodu öyrənilən nəzəriyyəyə uyğun olaraq destrukturizasiya ilə dəyişin:

javascriptfunction func(department, employee, hired) {
  let name     = employee[0];
  let surname  = employee[1];
  
  let year  = hired[0];
  let month = hired[1];
  let day   = hired[2];
}

func( 'development', ['John', 'Smit'], [2018, 12, 31] );