Деструктурирање на параметри на функции во JavaScript

Деструктуризацијата има уште една многу важна област на примена - пренос на параметри на функции. Суштината е следна: ако функцијата прима како параметар низа, можеме да одредиме директно во декларацијата на функцијата како да ја деструктурираме таа низа.

Ајде да погледнеме на пример. Нека имаме функција која како параметар прима низа со година, месец и ден:

javascriptfunc([2025, 12, 31]);

Ајде директно во параметарот на функцијата да означиме, на кои променливи треба да се подели оваа низа:

javascriptfunction func([year, month, day]) {
  console.log(year);  // ќе испише 2025
  console.log(month); // ќе испише 12
  console.log(day);   // ќе испише 31
}

Горенаведената конструкција треба да се сметa како еден параметар на функцијата. Можно е по желба да се додадат уште параметри:

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