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