Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Terminal retorna sempre como falso

Já tentei com as 3 cidades e com uma que não está na lista, de qualquer forma, retorna falso no terminal. O VS Code mostra a seguinte mensagem em let destinoExiste = true; que está dentro do while:

Remove unused declaration for: 'destinoExiste'

const listaDeDestinos = new Array(`Salvador`, `São Paulo`, `Rio de Janeiro`);

const idadeComprador = 18;
const estaAcompanhada = false;
let temPassagemComprada = false;
const destino = "Rio de Janeiro";

console.log("\n Destinos possíveis:");
console.log(listaDeDestinos);

const podeComprar = idadeComprador >= 18 || estaAcompanhada == true;

let contador = 0;
let destinoExiste = false;

while(contador < 3){
    if(listaDeDestinos[contador] == destino){
        let destinoExiste = true;
        break;
    }
    contador++;
}

console.log("Destino existe: ", destinoExiste);

if(podeComprar && destinoExiste){
    console.log("Boa viagem!")
}else{
    console.log("Desculpa, tivemos um erro!")
}
2 respostas
solução!

Olá Andrea, tudo bem ?

O problema está em depois do if que fica no while.

Hoje ele está assim:

if(listaDeDestinos[contador] == destino){
        let destinoExiste = true;
        break;
    }

Pra dar true você teria que ter feito assim com o seu código:

let destinoExiste = false;

while(contador < 3){
    if(listaDeDestinos[contador] == destino){
        destinoExiste = true;
        break;
    }
    contador++;
}

Quando você coloco let antes de destinoExiste dentro do if, você estava declarando uma nova variável e não dizendo que aquela que você tinha alterado iria receber uma alteração no valor dela.

Espero ter ajudado. :D

Obrigada, Raphael, consertei aqui.