ფუნქციების პარამეტრების დესტრუქტურიზაცია 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( ['John', 'Smit', 'development', 'programmer', 2000] );
შემდეგი კოდი გადააკეთეთ დესტრუქტურიზაციის გამოყენებით შესწავლილი თეორიის მიხედვით:
function func(employee) {
let name = employee[0];
let surname = employee[1];
let info = employee[2];
}
func( ['John', 'Smit', 'development', 'programmer', 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 = 'junior';
}
}
func( ['John', 'Smit', 'development'] );
შემდეგი კოდი გადააკეთეთ დესტრუქტურიზაციის გამოყენებით შესწავლილი თეორიის მიხედვით:
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] );