JavaScriptda funksiya parametrlarini destrukturizatsiya qilish

Destrukturizatsiyaning yana bir juda muhim qo'llanish sohasi bor - bu funksiya parametrlarini uzatish. Mohiyati shundan iborat: agar funksiya parametr sifatida massiv qabul qilsa, biz to'g'ridan-to'g'ri funksiya e'lonida ushbu massivni qanday destrukturizatsiya qilish kerakligini belgilab olishimiz mumkin.

Keling, misol orqali ko'rib chiqaylik. Faraz qilaylik, bizda yil, oy va kun bilan massivni parametr sifatida qabul qiladigan funksiya bor:

javascriptfunc([2025, 12, 31]);

Keling, to'g'ridan-to'g'ri funksiya parametrida ushbu massivni qaysi o'zgaruvchilarga ajratish kerakligini ko'rsatamiz:

javascriptfunction func([year, month, day]) {
  console.log(year);  // 2025 ni chiqaradi
  console.log(month); // 12 ni chiqaradi
  console.log(day);   // 31 ni chiqaradi
}

Yuqoridagi konstruksiyani funksiyaning bitta parametri sifatida ko'rib chiqish kerak. Istasangiz, yana parametrlar qo'shishingiz mumkin:

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

function func(param1, [year, month, day], param2) {
  console.log(param1); // 'str1' ni chiqaradi
  
  console.log(year);   // 2025 ni chiqaradi
  console.log(month);  // 12 ni chiqaradi
  console.log(day);    // 31 ni chiqaradi
  
  console.log(param2); // 'str2' ni chiqaradi
}

Quyidagi misolda esa funksiyaning birinchi va ikkinchi parametri sifatida massivlar uzatiladi va biz ikkalasini ham destrukturizatsiya qilamiz:

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

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

Quyidagi kodni o'rganilgan nazariya asosida destrukturizatsiya orqali o'zgartiring:

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

Quyidagi kodni o'rganilgan nazariya asosida destrukturizatsiya orqali o'zgartiring:

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

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

Quyidagi kodni o'rganilgan nazariya asosida destrukturizatsiya orqali o'zgartiring:

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

Quyidagi kodni o'rganilgan nazariya asosida destrukturizatsiya orqali o'zgartiring:

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