Destrukturering av funktionsparametrar i JavaScript
Destrukturering har ett annat mycket viktigt användningsområde - överföring av funktionsparametrar. Kärnan är följande: om en funktion accepterar en array som parameter, kan vi direkt i funktionsdeklarationen ange hur denna array ska destruktureras.
Låt oss titta på ett exempel. Låt oss säga att vi har en funktion som tar en array med år, månad och dag som parameter:
func([2025, 12, 31]);
Låt oss direkt i funktionens parameter ange i vilka variabler denna array ska delas upp:
function func([year, month, day]) {
console.log(year); // skriver ut 2025
console.log(month); // skriver ut 12
console.log(day); // skriver ut 31
}
Konstruktionen ovan bör betraktas som en funktionsparameter. Om så önskas kan fler parametrar läggas till:
func('str1', [2025, 12, 31], 'str2');
function func(param1, [year, month, day], param2) {
console.log(param1); // skriver ut 'str1'
console.log(year); // skriver ut 2025
console.log(month); // skriver ut 12
console.log(day); // skriver ut 31
console.log(param2); // skriver ut 'str2'
}
I följande exempel skickas arrayer som första och andra parameter till funktionen och vi destrukturerar båda av dem:
func([2025, 12, 31], [2026, 11, 30]);
function func([year1, month1, day1], [year2, month2, day2]) {
console.log(year1); // skriver ut 2025
console.log(month1); // skriver ut 12
console.log(day1); // skriver ut 31
console.log(year2); // skriver ut 2026
console.log(month2); // skriver ut 11
console.log(day2); // skriver ut 30
}
Ändra följande kod genom destrukturering enligt den studerade teorin:
function 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] );
Ändra följande kod genom destrukturering enligt den studerade teorin:
function func(employee) {
let name = employee[0];
let surname = employee[1];
let info = employee[2];
}
func( ['John', 'Smit', 'development', 'programmer', 2000] );
Ändra följande kod genom destrukturering enligt den studerade teorin:
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 = 'junior';
}
}
func( ['John', 'Smit', 'development'] );
Ändra följande kod genom destrukturering enligt den studerade teorin:
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( 'development', ['John', 'Smit'], [2018, 12, 31] );