1
resposta

Duvida: condicional booleana

Caros boa noite,

Tenho uma duvida no trecho a seguir:

function salvarItem() {
const comprasItem = itensInput.value
const checarDuplicado = listaDeItens.some((elemento) => elemento.valor.toUpperCase() === comprasItem.toUpperCase())

if(checarDuplicado) {
alert("Item já existe")
} else {

listaDeItens.push ({
valor: comprasItem
})
}

O if e else ja vem com a instrução do primeiro valor ser verdadeiro e o segundo ser falso pré definida?

Ou algum elemento dentro do metodo é o responsavel por ditar essa ordem?

por que ao meu entender, poderia ser o contrario tambem não? o if definir que o valor (false = não existe) e atribuir o alert(item ja existe), e o else ser verdade deito e acionar a função listaDeItens.push.

Fico no aguardo, obrigado!

1 resposta

Oi, Thiago, tudo bem?

De forma simples: o comando if em JavaScript sempre testa se a condição é verdadeira (true). Se for, ele executa o bloco de código dentro dele; se a condição for falsa, ele pula para o bloco else.

No seu código, a variável checarDuplicado se torna true quando o método .some() encontra um item repetido. Por isso, a sua verificação if (checarDuplicado) funciona perfeitamente para mostrar o alerta na hora certa.

Se quisesse inverter a lógica, você poderia usar o operador de negação ! antes da variável (ex: if (!checarDuplicado)), mas sua forma original já está clara e é a mais recomendada.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Espero ter ajudado! Bons estudos!

Sucesso

Imagem da comunidade