Stack Overflow em Português Asked by Bruna Sepulveda on February 13, 2021
Quero que se o selectedGenre
for diferente de vazio ou null
ele execute movie.genre === selectedGenre
, mas se for nulo ou vazio só saia da função sem retornar nada.
selectedGenre ? movie.genre === selectedGenre :
No JavaScript não existe o tipo void
, então a função, explicitamente ou não, irá retornar algo, se não for especificado, será undefined
:
function example() {}
console.log(example());
function example2() { return; }
console.log(example2());
const example3 = () => {};
console.log(example3());
Então você pode retornar undefined
no terceiro operando do ternário ("else
"):
function example(bool) {
return bool ? 'anything' : undefined;
}
console.log(example(true), example(false));
const example2 = (bool) => bool ? 'anything' : undefined;
console.log(example2(true), example2(false));
Uma outra forma de obter o valor undefined é utilizando a operador void
:
function example(bool) {
return bool ? 'anything' : void 0;
}
console.log(example(true), example(false));
const example2 = (bool) => bool ? 'anything' : void 0;
console.log(example2(true), example2(false));
Ainda sim, concordo com a resposta anterior, o if
é melhor pra esse objetivo, porém, em caso de arrow functions com uma única linha, afim de manter a simplicidade, faz sentido e é aceitável seu uso
Answered by Costamilam on February 13, 2021
Não fazendo um ternário, esse operador foi criado para dar um resultado, se não quer que seja feito um resultado o operador não deve ser usado, claramente é um caso para um if
.
Mas se quiser insistir muito nisso, o que reforço ser um erro pode resultar em nulo:
false ? console.log("ok") : null;
Mas não tem como fazer uma função encerrar sem fazer uma gambiarra maior ainda.
Forma correta e mais curta:
if (false) console.log("ok");
E usando em função para dar a saída:
function teste(valor) {
if (valor) console.log("ok");
else return;
console.log("continuou");
}
teste(false);
Coloquei no GitHub para referência futura.
Quando deseja controlar o fluxo de execução o if
é o correto. Operadores servem para gerar resultados, não controlar fluxo.
Answered by Maniero on February 13, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP