4
respuestas

Problema o error: Cuando coloco un valor menor que 400 siempre me elige la ciudad equivocada

Buen día a todos, estoy presentando un error con mi código ya que siempre tengo un valor menor a 400 en la variable precioDisponible, me da como resultado Lima cuyo precio es 400.

a continuación dejo el codigo


const ciudadesDisponibles= new Array("Bogota","Lima","Santiago","Montevideo");

const precioCiudad= new Array(500,400,380,200);
const datos=[
    {
        "ciudad":"Bogota",
        "precio":500
    },
    {
        "ciudad":"Lima",
        "precio":400
    },
    {
        "ciudad":"Santiago",
        "precio":300
    },
    {
        "ciudad":"Montevideo",
        "precio":200
    }
];

const presupuestoDisponible= 200


//do while 
let i=0;

let ciudadSeleccionada='';
do{
    if( datos[i].precio <= presupuestoDisponible){
        ciudadSeleccionada = datos[i].ciudad; 
        break;    
    }
    i++;
    console.log(ciudadSeleccionada);  

}while(i< datos.length && ciudadSeleccionada =='')
if(ciudadSeleccionada == '')
    console.log("No tenemos pasajes disponibles");
else
    console.log("Puedes comprar pasaje para: " + ciudadSeleccionada);

Muchas gracias.

4 respuestas

Hola Andres, espero que estés bien.

Me parece que tu código está bien, realicé varios testes y me salieron correctamente.

¿Recordaste salvar tu código en VS Code antes de ejecutar?

¡Saludos!

Si este post te ayudó, por favor marca como solucionado ✓. ¡Continúa con tus estudios!

Si lo hice me pasa siempre que hago el debug, como tal solo hace 2 iteracciones, y me lanza la opcion de Lima, creo que me falto configurar algo en el debug por que no hace toda la búsqueda completa, en cambio desde la terminal si me lanza en resultado correcto

Adjunto captura con el debug programa con la cocdebug

Adjunto captura con la terminal basica Programa con la terminal basica

a este punto estoy seguro que me falto acomodar algo en el debug, pero no sé que sera....

Quiero pensar que es el error de la falta del operador que van dentro del if ya que tienes datos[i].precio es menor a presupuestoDisponible.. y deberia ser <= (menor o igual) por que relativamente es el unico error que le encuentro a tu codigo

let ciudadSeleccionada = '';
    do {
        if (datos[i].precio <= presupuestoDisponible){
            ciudadSeleccionada = datos[i].ciudad
            break;
        } 
            i++;
    } while(i < datos.length && ciudadSeleccionada == '')

Hola Rafael no nada, con el break me sigue mostrando el mismo resultado pero solo con el Debuggeador, siento que lo que falta es configurarle algo, pero no se que es lo que debo configurar, porque en la terminal de VSC realiza el proceso completo.