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

Деструктуризация имеет еще одну очень важную область применения - передача параметров функций. Суть в следующем: если функция принимает в качестве параметра массив, мы можем задать прямо в объявлении функции то, как деструктуризировать этот массив.

Давайте посмотрим на примере. Пусть у нас есть функция, параметром принимающая массив с годом, месяцем и днем:

func([2025, 12, 31]);

Давайте прямо в параметре функции укажем, на какие переменные следует разбивать этот массив:

function func([year, month, day]) { console.log(year); // выведет 2025 console.log(month); // выведет 12 console.log(day); // выведет 31 }

Приведенную выше конструкцию следует рассматривать как один параметр функции. Можно при желании добавить еще параметры:

func('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' }

А в следующем примере первым и вторым параметром функции передаются массивы и мы деструктуризируем оба из них:

func([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 }

Переделайте следующий код через деструктуризацию согласно изученной теории:

function func(employee) { let name = employee[0]; let surname = employee[1]; let department = employee[2]; let position = employee[3]; let salary = employee[4]; } func( ['Иван', 'Иванов', 'отдел разработки', 'программист', 2000] );

Переделайте следующий код через деструктуризацию согласно изученной теории:

function func(employee) { let name = employee[0]; let surname = employee[1]; let info = employee[2]; } func( ['Иван', 'Иванов', 'отдел разработки', 'программист', 2000] );

Переделайте следующий код через деструктуризацию согласно изученной теории:

function 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 = 'джуниор'; } } func( ['Иван', 'Иванов', 'отдел разработки'] );

Переделайте следующий код через деструктуризацию согласно изученной теории:

function 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( 'отдел разработки', ['Иван', 'Иванов'], [2018, 12, 31] );

Объекты в параметрах

Аналогичным образом можно деструктуризировать параметры-объекты:

function func({year, month, day}) { console.log(year); // выведет 2025 console.log(month); // выведет 12 console.log(day); // выведет 31 } func({year: 2025, month: 12, day: 31,});

Переделайте следующий код через деструктуризацию согласно изученной теории:

function func(options) { let color = options.color; let width = options.width; let height = options.height; } func( {color: 'red', width: 400, height: 500} );

Переделайте следующий код через деструктуризацию согласно изученной теории:

function func(options) { let width = options.width; let height = options.height; let color; if (options.color !== undefined) { color = options.color; } else { color = 'black'; } } func( {color: 'red', width: 400, height: 500} );