1
resposta

[Dúvida] Desestruturação

Ainda sobre desestruturação, minha pergunta agora seria sobre 'definir valores padrão', algo que eu não entendi muito bem a aplicação.

const [nome01 = 'Sem Nome', nome02 = 'Sem Nome'] = ['João', 'Marcos'];

console.log(nome01, nome02);

No exemplo acima eu tenho um array de nomes ['João', 'Marcos'];

Se esse meu array tivesse 100 nomes e nos índices 55, 70 e 84 esses nomes não tivessem sido informados eu poderia usar algo parecido para preencher esses índices com uma palavra que faça menção a esse 'problema' para que o retorno seja melhor compreendido? Seria mais ou menos esse o entendimento a respeito da aplicação ou eu estou equivocado?

1 resposta

Boa noite, Rosemberg!

O uso de valores padrão serve para evitar que variáveis fiquem como undefined quando algum valor não for informado no array. É uma forma de garantir que sempre haja algum valor atribuído aquela variável.

Faça o seguinte teste:


const [nome01 = 'Sem Nome', nome02 = 'Sem Nome'] = [ , 'Marcos']; // Veja que não estou passando nenhum valor para a primeira posição do array
console.log(nome01, nome02); // O nome01 irá retornar 'Sem nome'

const [nome01, nome02] = [ , 'Marcos']; 
console.log(nome01, nome02); // O nome01 irá retornar undefined, pois não foi definido um valor padrão caso ele não tenha nada!

No caso da sua pergunta, utilizar a desestruturação com valores padrão não seria a abordagem mais efetiva, já que, para tratar os nomes não preenchidos seria necessário declarar manualmente as 100 variáveis ou, pelo menos, aquelas correspondentes aos índices 55, 70 e 84.

Uma alternativa mais adequada seria utilizar um laço de repetição, como o for, ou métodos de array como o map(), para percorrer todos os elementos do array com os nomes e, quando um nome estiver ausente (undefined, null ou string vazia), substituí-lo por uma string com o valor "Sem nome".

Espero ter tirado sua dúvida!