13 de maio de 2020 • 1 min de leitura
A mágica do Object Literals
Reescrevendo o Switch e If/else com Object Literals.
Recentemente eu estava fazendo um desafio e então precisei utilizar o switch, como tinham várias possibilidades eu percebi que o código estava ficando com bastante linhas (e feio).
Então eu pensei comigo, deve ter outro jeito de reescrever esse código e manter a funcionalidade, foi então que eu encontrei a solução em um artigo escrito por Chris Burgin no Medium, utilizando o Object Literals!
// Off: Engraçado que eu utilizava Object Literals em outras situações, mas nunca tinha pensado em utilizar com switch/ if-else
Situação utilizando o switch:
const texto = 'Laranja';
const textoDefault = 'Arroz';
const fruta = (texto) => {
switch (texto) {
case 'Laranja':
return 'Laranjas são deliciosas!';
case 'Banana':
return 'Bananas são deliciosas!';
case 'Limão':
return 'Limões são deliciosos!';
default:
return 'Desculpa, mas não encontrei este termo.';
}
}
console.log(fruta(texto));
// "Laranjas são deliciosas!"
console.log(fruta(textoDefault));
// "Desculpa, mas não encontrei este termo."
Situação utilizando if-else:
// OU utilizando if-else
const texto = 'Laranja';
const textoDefault = 'Arroz';
const fruta = (texto) => {
if(texto === 'Laranja') {
return 'Laranjas são deliciosas!'
}else if(texto.includes('Banana')) {
return 'Bananas são deliciosas!'
} else if(texto === 'Limão') {
return 'Limões são deliciosos!'
} else {
return 'Desculpa, mas não encontrei este termo.';
}
}
console.log(fruta(texto));
// "Laranjas são deliciosas!"
console.log(fruta(textoDefault));
// "Desculpa, mas não encontrei este termo."
Resolução:
const texto = 'Laranja';
const textoDefault = 'Arroz';
const fruta = (texto) => ({
'Laranja': 'Laranjas são deliciosas!',
'Banana': 'Bananas são deliciosas!',
'Limão': 'Limões são deliciosos!',
})[texto] || 'Desculpa, mas não encontrei este termo.';
console.log(fruta(texto));
// "Laranjas são deliciosas!"
console.log(fruta(textoDefault));
// "Desculpa, mas não encontrei este termo."
console.log(fruta(null));
console.log(fruta(undefined));
console.log(fruta(''));
// "Desculpa, mas não encontrei este termo."
Fontes: