Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre operadores || e &&

eu tenho o seguinte código:

console.log("Destinos possíveis:");
const listaDestinos = new Array(
    `Salvador`,
    `Rio de Janeiro`,
    `Brasília`,
    `Curitiba`
);
console.log(listaDestinos);

const idadeComprador = 18;
const acompanhado = true;
const passagemComprada = false;
if(idadeComprador >= 18 || acompanhado){
    console.log("Comprador é maior de idade ou está acompanhado");
    listaDestinos.splice(1,1);
}else{
    console.log("Comprador é menor de idade");
};

console.log("Restante das Reservas:");
console.log(listaDestinos);

console.log("Embarque: \n ");
if(idadeComprador >= 18 || acompanhado==true && passagemComprada == true){
    console.log("Boa-Viagem!");
    viajando = true;
}else{
    console.log("Não poderá Viajar");
    viajando = false;
};

` O que esperava é que o cliente não viajasse, já que ele não tem a passagem, mesmo atendendo os outros critérios, porém o cmd me retorna:

Destinos possíveis: [ 'Salvador', 'Rio de Janeiro', 'Brasília', 'Curitiba' ] Comprador é maior de idade ou está acompanhado Restante das Reservas: [ 'Salvador', 'Brasília', 'Curitiba' ] Embarque:

Boa-Viagem! `

1 resposta
solução!

Boa noite, o problema provavelmente é a precedência das operações logicas. Para definir a ordem das operações logicas você pode usar parênteses '(' ')'. Tente substituir por (idadeComprador >= 18 || acompanhado==true) && passagemComprada == true no if.