ფუნქციების პარამეტრების დესტრუქტურიზაცია JavaScript-ში

დესტრუქტურიზაციას კიდევ ერთი ძალიან მნიშვნელოვანი გამოყენების სფერო აქვს - ფუნქციებისთვის პარამეტრების გადაცემა. არსი შემდეგში მდგომარეობს: თუ ფუნქცია პარამეტრად იღებს მასივს, ჩვენ შეგვიძლია ფუნქციის განსაზღვრაში უშუალოდ მივუთითოთ, როგორ დესტრუქტურიზდეს ეს მასივი.

მოდით შევხედოთ მაგალითს. დავუშვათ, გვაქვს ფუნქცია, რომელიც პარამეტრად იღებს მასივს წლით, თვითა და დღით:

javascriptfunc([2025, 12, 31]);

მოდით, პარამეტრში უშუალოდ მივუთითოთ, რა ცვლადებად უნდა დაიშალოს ეს მასივი:

javascriptfunction func([year, month, day]) {
  console.log(year);  // გამოიტანს 2025-ს
  console.log(month); // გამოიტანს 12-ს
  console.log(day);   // გამოიტანს 31-ს
}

ზემოთ მოყვანილი კონსტრუქცია უნდა განიხილებოდეს როგორც ფუნქციის ერთი პარამეტრი. სურვილის შემთხვევაში შესაძლებელია სხვა პარამეტრების დამატებაც:

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

function func(param1, [year, month, day], param2) {
  console.log(param1); // გამოიტანს 'str1'-ს
  
  console.log(year);   // გამოიტანს 2025-ს
  console.log(month);  // გამოიტანს 12-ს
  console.log(day);    // გამოიტანს 31-ს
  
  console.log(param2); // გამოიტანს 'str2'-ს
}

შემდეგ მაგალითში კი ფუნქციას პირველ და მეორე პარამეტრად მასივები გადაეცემა და ჩვენ ორივე მათგანს ვდესტრუქტურიზებთ:

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

function func([year1, month1, day1], [year2, month2, day2]) {
  console.log(year1);  // გამოიტანს 2025-ს
  console.log(month1); // გამოიტანს 12-ს
  console.log(day1);   // გამოიტანს 31-ს
  
  console.log(year2);  // გამოიტანს 2026-ს
  console.log(month2); // გამოიტანს 11-ს
  console.log(day2);   // გამოიტანს 30-ს
}
Задание 1

შემდეგი კოდი გადააკეთეთ დესტრუქტურიზაციის გამოყენებით შესწავლილი თეორიის მიხედვით:

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

შემდეგი კოდი გადააკეთეთ დესტრუქტურიზაციის გამოყენებით შესწავლილი თეორიის მიხედვით:

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

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

შემდეგი კოდი გადააკეთეთ დესტრუქტურიზაციის გამოყენებით შესწავლილი თეორიის მიხედვით:

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

შემდეგი კოდი გადააკეთეთ დესტრუქტურიზაციის გამოყენებით შესწავლილი თეორიის მიხედვით:

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] );