Destructuring Tham Số Hàm trong JavaScript
Destructuring còn có một lĩnh vực ứng dụng rất quan trọng khác - truyền tham số cho hàm. Ý tưởng như sau: nếu một hàm nhận một mảng làm tham số, chúng ta có thể chỉ định ngay trong khai báo hàm cách destructuring mảng đó.
Hãy xem một ví dụ. Giả sử chúng ta có một hàm nhận tham số là một mảng chứa năm, tháng và ngày:
func([2025, 12, 31]);
Hãy chỉ định ngay trong tham số của hàm, các biến nào nên được tách từ mảng này:
function func([year, month, day]) {
console.log(year); // sẽ hiển thị 2025
console.log(month); // sẽ hiển thị 12
console.log(day); // sẽ hiển thị 31
}
Cấu trúc ở trên nên được coi là một tham số của hàm. Nếu muốn, có thể thêm các tham số khác:
func('str1', [2025, 12, 31], 'str2');
function func(param1, [year, month, day], param2) {
console.log(param1); // sẽ hiển thị 'str1'
console.log(year); // sẽ hiển thị 2025
console.log(month); // sẽ hiển thị 12
console.log(day); // sẽ hiển thị 31
console.log(param2); // sẽ hiển thị 'str2'
}
Trong ví dụ tiếp theo, tham số thứ nhất và thứ hai của hàm được truyền vào là các mảng và chúng ta destructuring cả hai:
func([2025, 12, 31], [2026, 11, 30]);
function func([year1, month1, day1], [year2, month2, day2]) {
console.log(year1); // sẽ hiển thị 2025
console.log(month1); // sẽ hiển thị 12
console.log(day1); // sẽ hiển thị 31
console.log(year2); // sẽ hiển thị 2026
console.log(month2); // sẽ hiển thị 11
console.log(day2); // sẽ hiển thị 30
}
Hãy viết lại đoạn code sau bằng destructuring theo lý thuyết đã học:
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] );
Hãy viết lại đoạn code sau bằng destructuring theo lý thuyết đã học:
function func(employee) {
let name = employee[0];
let surname = employee[1];
let info = employee[2];
}
func( ['John', 'Smit', 'development', 'programmer', 2000] );
Hãy viết lại đoạn code sau bằng destructuring theo lý thuyết đã học:
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'] );
Hãy viết lại đoạn code sau bằng destructuring theo lý thuyết đã học:
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] );