Desestructuración de parámetros de funciones en JavaScript

La desestructuración tiene otra área de aplicación muy importante: la transmisión de parámetros de funciones. La esencia es la siguiente: si una función acepta un array como parámetro, podemos especificar directamente en la declaración de la función cómo desestructurar este array.

Veamos un ejemplo. Supongamos que tenemos una función que acepta como parámetro un array con el año, mes y día:

javascriptfunc([2025, 12, 31]);

Especifiquemos directamente en el parámetro de la función en qué variables se debe descomponer este array:

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

La construcción anterior debe considerarse como un parámetro de la función. Si se desea, se pueden agregar más parámetros:

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

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

Y en el siguiente ejemplo, los arrays se pasan como primer y segundo parámetro de la función y desestructuramos ambos:

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

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

Reescriba el siguiente código usando desestructuración de acuerdo con la teoría estudiada:

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

Reescriba el siguiente código usando desestructuración de acuerdo con la teoría estudiada:

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

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

Reescriba el siguiente código usando desestructuración de acuerdo con la teoría estudiada:

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

Reescriba el siguiente código usando desestructuración de acuerdo con la teoría estudiada:

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