JavaScriptda funksiya parametrlarini destrukturizatsiya qilish
Destrukturizatsiyaning yana bir juda muhim qo'llanish sohasi bor - bu funksiya parametrlarini uzatish. Mohiyati shundan iborat: agar funksiya parametr sifatida massiv qabul qilsa, biz to'g'ridan-to'g'ri funksiya e'lonida ushbu massivni qanday destrukturizatsiya qilish kerakligini belgilab olishimiz mumkin.
Keling, misol orqali ko'rib chiqaylik. Faraz qilaylik, bizda yil, oy va kun bilan massivni parametr sifatida qabul qiladigan funksiya bor:
func([2025, 12, 31]);
Keling, to'g'ridan-to'g'ri funksiya parametrida ushbu massivni qaysi o'zgaruvchilarga ajratish kerakligini ko'rsatamiz:
function func([year, month, day]) {
console.log(year); // 2025 ni chiqaradi
console.log(month); // 12 ni chiqaradi
console.log(day); // 31 ni chiqaradi
}
Yuqoridagi konstruksiyani funksiyaning bitta parametri sifatida ko'rib chiqish kerak. Istasangiz, yana parametrlar qo'shishingiz mumkin:
func('str1', [2025, 12, 31], 'str2');
function func(param1, [year, month, day], param2) {
console.log(param1); // 'str1' ni chiqaradi
console.log(year); // 2025 ni chiqaradi
console.log(month); // 12 ni chiqaradi
console.log(day); // 31 ni chiqaradi
console.log(param2); // 'str2' ni chiqaradi
}
Quyidagi misolda esa funksiyaning birinchi va ikkinchi parametri sifatida massivlar uzatiladi va biz ikkalasini ham destrukturizatsiya qilamiz:
func([2025, 12, 31], [2026, 11, 30]);
function func([year1, month1, day1], [year2, month2, day2]) {
console.log(year1); // 2025 ni chiqaradi
console.log(month1); // 12 ni chiqaradi
console.log(day1); // 31 ni chiqaradi
console.log(year2); // 2026 ni chiqaradi
console.log(month2); // 11 ni chiqaradi
console.log(day2); // 30 ni chiqaradi
}
Quyidagi kodni o'rganilgan nazariya asosida destrukturizatsiya orqali o'zgartiring:
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] );
Quyidagi kodni o'rganilgan nazariya asosida destrukturizatsiya orqali o'zgartiring:
function func(employee) {
let name = employee[0];
let surname = employee[1];
let info = employee[2];
}
func( ['John', 'Smit', 'development', 'programmer', 2000] );
Quyidagi kodni o'rganilgan nazariya asosida destrukturizatsiya orqali o'zgartiring:
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'] );
Quyidagi kodni o'rganilgan nazariya asosida destrukturizatsiya orqali o'zgartiring:
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] );