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] );