Funkcijų parametrų destruktūrizavimas JavaScript
Destruktūrizavimas turi dar vieną labai svarbią taikymo sritį - funkcijų parametrų perdavimą. Esmė tokia: jei funkcija priima kaip parametrą masyvą, mes galime tiesiogiai funkcijos deklaracijoje nurodyti, kaip destruktūrizuoti tą masyvą.
Pažiūrėkime pavyzdį. Tarkime, mes turime funkciją, kuri parametru priima masyvą su metais, mėnesiu ir diena:
func([2025, 12, 31]);
Tiesiogiai funkcijos parametre nurodykime, į kuriuos kintamuosius reikia išskaidyti šį masyvą:
function func([year, month, day]) {
console.log(year); // išves 2025
console.log(month); // išves 12
console.log(day); // išves 31
}
Anksčiau pateiktą konstrukciją reikėtų vertinti kaip vieną funkcijos parametrą. Jei norima, galima pridėti daugiau parametrų:
func('str1', [2025, 12, 31], 'str2');
function func(param1, [year, month, day], param2) {
console.log(param1); // išves 'str1'
console.log(year); // išves 2025
console.log(month); // išves 12
console.log(day); // išves 31
console.log(param2); // išves 'str2'
}
O kitame pavyzdyje pirmas ir antras funkcijos parametrai yra perduodami masyvai ir mes destruktūrizuojame abu iš jų:
func([2025, 12, 31], [2026, 11, 30]);
function func([year1, month1, day1], [year2, month2, day2]) {
console.log(year1); // išves 2025
console.log(month1); // išves 12
console.log(day1); // išves 31
console.log(year2); // išves 2026
console.log(month2); // išves 11
console.log(day2); // išves 30
}
Pakeiskite šį kodą naudodami destruktūrizavimą pagal išmoktą teoriją:
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] );
Pakeiskite šį kodą naudodami destruktūrizavimą pagal išmoktą teoriją:
function func(employee) {
let name = employee[0];
let surname = employee[1];
let info = employee[2];
}
func( ['John', 'Smit', 'development', 'programmer', 2000] );
Pakeiskite šį kodą naudodami destruktūrizavimą pagal išmoktą teoriją:
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'] );
Pakeiskite šį kodą naudodami destruktūrizavimą pagal išmoktą teoriją:
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] );