Funkciju parametru destrukturizācija JavaScript
Destrukturizācijai ir vēl viena ļoti svarīga lietošanas joma - funkciju parametru nodošana. Būtība ir sekojoša: ja funkcija kā parametru pieņem masīvu, mēs funkcijas deklarēšanā varam norādīt, kā šo masīvu destrukturizēt.
Apskatīsim piemērā. Pieņemsim, ka mums ir funkcija, kas kā parametru pieņem masīvu ar gadu, mēnesi un dienu:
func([2025, 12, 31]);
Funkcijas parametrā norādīsim, kādos mainīgajos šis masīvs jāsadala:
function func([year, month, day]) {
console.log(year); // izvadīs 2025
console.log(month); // izvadīs 12
console.log(day); // izvadīs 31
}
Iepriekš minēto konstrukciju vajadzētu uzskatīt par vienu funkcijas parametru. Vēloties var pievienot vēl parametrus:
func('str1', [2025, 12, 31], 'str2');
function func(param1, [year, month, day], param2) {
console.log(param1); // izvadīs 'str1'
console.log(year); // izvadīs 2025
console.log(month); // izvadīs 12
console.log(day); // izvadīs 31
console.log(param2); // izvadīs 'str2'
}
Nākamajā piemērā funkcijas pirmo un otro parametru pārsūta masīvi, un mēs destrukturizējam abiem no tiem:
func([2025, 12, 31], [2026, 11, 30]);
function func([year1, month1, day1], [year2, month2, day2]) {
console.log(year1); // izvadīs 2025
console.log(month1); // izvadīs 12
console.log(day1); // izvadīs 31
console.log(year2); // izvadīs 2026
console.log(month2); // izvadīs 11
console.log(day2); // izvadīs 30
}
Pārveidojiet šādu kodu ar destrukturizāciju saskaņā ar apgūto teoriju:
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] );
Pārveidojiet šādu kodu ar destrukturizāciju saskaņā ar apgūto teoriju:
function func(employee) {
let name = employee[0];
let surname = employee[1];
let info = employee[2];
}
func( ['John', 'Smit', 'development', 'programmer', 2000] );
Pārveidojiet šādu kodu ar destrukturizāciju saskaņā ar apgūto teoriju:
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'] );
Pārveidojiet šādu kodu ar destrukturizāciju saskaņā ar apgūto teoriju:
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] );