Desestruturação de parâmetros de funções em JavaScript
A desestruturação tem outra área de aplicação muito importante - a passagem de parâmetros para funções. A essência é a seguinte: se uma função aceita um array como parâmetro, podemos definir diretamente na declaração da função como desestruturar esse array.
Vamos ver um exemplo. Suponha que temos uma função que aceita como parâmetro um array com ano, mês e dia:
func([2025, 12, 31]);
Vamos diretamente no parâmetro da função indicar em quais variáveis este array deve ser dividido:
function func([year, month, day]) {
console.log(year); // exibirá 2025
console.log(month); // exibirá 12
console.log(day); // exibirá 31
}
A construção acima deve ser considerada como um parâmetro da função. Pode-se, se desejar, adicionar mais parâmetros:
func('str1', [2025, 12, 31], 'str2');
function func(param1, [year, month, day], param2) {
console.log(param1); // exibirá 'str1'
console.log(year); // exibirá 2025
console.log(month); // exibirá 12
console.log(day); // exibirá 31
console.log(param2); // exibirá 'str2'
}
E no próximo exemplo, o primeiro e o segundo parâmetro da função são arrays e nós desestruturamos ambos:
func([2025, 12, 31], [2026, 11, 30]);
function func([year1, month1, day1], [year2, month2, day2]) {
console.log(year1); // exibirá 2025
console.log(month1); // exibirá 12
console.log(day1); // exibirá 31
console.log(year2); // exibirá 2026
console.log(month2); // exibirá 11
console.log(day2); // exibirá 30
}
Reescreva o seguinte código usando desestruturação de acordo com a teoria estudada:
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] );
Reescreva o seguinte código usando desestruturação de acordo com a teoria estudada:
function func(employee) {
let name = employee[0];
let surname = employee[1];
let info = employee[2];
}
func( ['John', 'Smit', 'development', 'programmer', 2000] );
Reescreva o seguinte código usando desestruturação de acordo com a teoria estudada:
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 = 'júnior';
}
}
func( ['John', 'Smit', 'development'] );
Reescreva o seguinte código usando desestruturação de acordo com a teoria estudada:
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] );