Funksiya parametrlərinin destrukturizasiyası JavaScript-də
Destrukturizasiyanın başqa bir çox əhəmiyyətli istifadə sahəsi var - funksiya parametrlərinin ötürülməsi. Məqsəd belədir: əgər funksiya parametr kimi massiv qəbul edirsə, biz birbaşa funksiyanın təyinində həmin massivi necə destrukturizə edəcəyimizi təyin edə bilərik.
Nümunəyə baxaq. Tutaq ki, bizim il, ay və günü qəbul edən parametri olan bir funksiyamız var:
func([2025, 12, 31]);
Gəlin birbaşa funksiya parametrində göstərək ki, bu massiv hansı dəyişənlərə parçalanmalıdır:
function func([year, month, day]) {
console.log(year); // 2025 çap edəcək
console.log(month); // 12 çap edəcək
console.log(day); // 31 çap edəcək
}
Yuxarıda göstərilən konstruksiya funksiyanın bir parametri kimi nəzərə alınmalıdır. İstəsəniz, başqa parametrlər də əlavə edə bilərsiniz:
func('str1', [2025, 12, 31], 'str2');
function func(param1, [year, month, day], param2) {
console.log(param1); // 'str1' çap edəcək
console.log(year); // 2025 çap edəcək
console.log(month); // 12 çap edəcək
console.log(day); // 31 çap edəcək
console.log(param2); // 'str2' çap edəcək
}
Növbəti nümunədə isə funksiyanın birinci və ikinci parametri kimi massivlər ötürülür və biz onların hər ikisini destrukturizə edirik:
func([2025, 12, 31], [2026, 11, 30]);
function func([year1, month1, day1], [year2, month2, day2]) {
console.log(year1); // 2025 çap edəcək
console.log(month1); // 12 çap edəcək
console.log(day1); // 31 çap edəcək
console.log(year2); // 2026 çap edəcək
console.log(month2); // 11 çap edəcək
console.log(day2); // 30 çap edəcək
}
Aşağıdakı kodu öyrənilən nəzəriyyəyə uyğun olaraq destrukturizasiya ilə dəyişin:
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] );
Aşağıdakı kodu öyrənilən nəzəriyyəyə uyğun olaraq destrukturizasiya ilə dəyişin:
function func(employee) {
let name = employee[0];
let surname = employee[1];
let info = employee[2];
}
func( ['John', 'Smit', 'development', 'programmer', 2000] );
Aşağıdakı kodu öyrənilən nəzəriyyəyə uyğun olaraq destrukturizasiya ilə dəyişin:
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'] );
Aşağıdakı kodu öyrənilən nəzəriyyəyə uyğun olaraq destrukturizasiya ilə dəyişin:
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] );