El codigo del curso lo hice exactamente igual, pero cuando cambio de precio, siempre me retorna mi primera opcion si es que entra, y si no entra y hay una opcion que si mas abajo en el mapa, me arroja que no hay disponible, por que es?
El codigo del curso lo hice exactamente igual, pero cuando cambio de precio, siempre me retorna mi primera opcion si es que entra, y si no entra y hay una opcion que si mas abajo en el mapa, me arroja que no hay disponible, por que es?
¡Hola Estudiante!
Entiendo que estás teniendo un problema con tu código en JavaScript y estás experimentando un comportamiento inesperado al cambiar el precio. Sin embargo, para poder ayudarte de manera más precisa, necesitaría ver el código que estás utilizando.
Sin embargo, puedo darte algunas sugerencias generales para solucionar este tipo de problemas.
Asegúrate de que estás utilizando la estructura de control adecuada para evaluar las condiciones y seleccionar la opción correcta. Puede ser un if-else, un switch, o cualquier otra estructura que se ajuste a tus necesidades.
Verifica que estás utilizando los operadores de comparación correctos para evaluar las condiciones. Por ejemplo, si estás comparando números, asegúrate de utilizar los operadores de comparación adecuados (>, <, >=, <=, etc.).
Comprueba si estás utilizando correctamente las variables y si están almacenando los valores correctos. Puedes agregar algunas instrucciones de impresión (console.log) para verificar los valores de las variables en diferentes puntos del código y asegurarte de que se están asignando correctamente.
Revisa si hay algún error de sintaxis o de lógica en tu código. A veces, un simple error tipográfico o una condición mal escrita pueden causar comportamientos inesperados.
Recuerda que sin ver tu código específico, es difícil ofrecer una solución precisa. Te recomendaría que revises detenidamente tu código y apliques las sugerencias que te he dado. Si sigues teniendo problemas, no dudes en compartir tu código para que pueda ayudarte de manera más específica.
¡Espero haber ayudado y buenos estudios!
este es mi codigo, ya lo revise y sigue saliendo mal, no se si estoy viciado pero ya lo compare.
const datos = [ { 'ciudad' : 'Mexico', 'precio' : 500 }, { 'ciudad' : 'Monterrey', 'precio' : 400 }, { 'ciudad' : 'Guadalajara', 'precio' : 600 }, { 'ciudad' : 'Montevideo', 'precio' : 1200 }, ];
const presupuestoDisponible = 5200;
let i = 0;
/while(i < datos.length && datos[i].precio > presupuestoDisponible) { i++; }/
let ciudadSeleccionada = ''; do { if (datos[i].precio <= presupuestoDisponible) { ciudadSeleccionada = datos[i].ciudad; break; } i++;
} while(i < datos.length && ciudadSeleccionada == '')
if (ciudadSeleccionada == '') console.log('No tenemos pasajes disponibles'); else console.log("Puedes comprar pasaje para: "+ciudadSeleccionada);
Hola, ¿Cómo estás?
Acabo de darle una revisada a tu código y creo que ya se a lo que te refieres.
Tienes definida la siguiente lista de destinos - precios:
const datos = [
{
'ciudad' : 'Mexico',
'precio' : 500
},
{
'ciudad' : 'Monterrey',
'precio' : 400
},
{
'ciudad' : 'Guadalajara',
'precio' : 600
},
{
'ciudad' : 'Montevideo',
'precio' : 1200
}
];
Entonces, al momento de entrar en tu ciclo while:
const presupuestoDisponible = 5200;
let i = 0;
while(i < datos.length && datos[i].precio > presupuestoDisponible)
{
i++;
}
Va a analizar las condiciones:
Entonces, a pesar de que se cumple la primera condición, como estás aplicando una operación AND (&&), se devuelve un false debido a que la segunda condición no se cumple (Recuerda que solo se devuelve verdadero cuando ambas condiciones o sentencias se cumplen). Por lo mismo no entra al ciclo while y la variable i conserva su valor de 0, y al seguir con la otra parte del código:
let ciudadSeleccionada = '';
do
{
if (datos[i].precio <= presupuestoDisponible)
{
ciudadSeleccionada = datos[i].ciudad;
break;
}
i++;
} while(i < datos.length && ciudadSeleccionada == '');
La ciudad seleccionada se queda con el valor de datos[i].ciudad = datos[0].ciudad = "México".
Si quieres que tu programa te diga cuál es el boleto más caro para el que te alcanza con el presupuesto disponible con el que cuentas, solamente tienes que cambiar el orden de tus elementos de mayor a menor precio de la siguiente manera:
const datos = [
{
'ciudad' : 'Montevideo',
'precio' : 1200
},
{
'ciudad' : 'Guadalajara',
'precio' : 600
},
{
'ciudad' : 'Mexico',
'precio' : 500
},
{
'ciudad' : 'Monterrey',
'precio' : 400
}
];
Con eso tu programa ya debería de tener el comportamiento que deseas.
Espero que esto resuelva tu duda / problema.
¡Exito con el resto del curso!
Claro, eso lo resuelve parcialmente, y lo aradezco, pero aun asi si pogo un precio mas caro, me da mexico como opcion, como podemos solucionar eso? Saludos y gracias
Hola de nuevo, disculpa por tardar en responder.
Me parece que tal vez no guardaste tu archivo después de haber realizado el reorden de los datos por los precios. Mira, tu código modificado quedó de la siguiente manera:
const datos = [
{
'ciudad' : 'Montevideo',
'precio' : 1200
},
{
'ciudad' : 'Guadalajara',
'precio' : 600
},
{
'ciudad' : 'Mexico',
'precio' : 500
},
{
'ciudad' : 'Monterrey',
'precio' : 400
}
];
const presupuestoDisponible = 5200;
let i = 0;
while(i < datos.length && datos[i].precio > presupuestoDisponible)
{
i++;
}
let ciudadSeleccionada = '';
do
{
if (datos[i].precio <= presupuestoDisponible)
{
ciudadSeleccionada = datos[i].ciudad;
break;
}
i++;
} while(i < datos.length && ciudadSeleccionada == '')
if (ciudadSeleccionada == '')
console.log('No tenemos pasajes disponibles');
else
console.log("Puedes comprar pasaje para: "+ciudadSeleccionada);
Y con ese código obtengo las siguientes salidas:
Para cuando tengo $5200 de presupuesto:
Para cuando tengo $1199:
Para cuando tengo $599:
Para cuando tengo $499:
Como puedes ver, en mi caso funciona bien el programa para cada uno de los diferentes precios. Puede que tal vez después de publicar tu duda en el foro, trataste de solucionar el problema por tu cuenta y sin querer modificaste alguna parte importante de tu código que ocasione que siempre te devuelva México como la opción disponible, o puede que no hayas guardado bien tu código después de haber hecho las modificaciones. Lo último que se me ocurre, es que trates de eliminar tu terminal (si es que estás en Visual Studio Code), a ver si con eso solucionas tu problema.
Para eliminarla, solo basta con que le des clic al ícono del bote de basura que aparece arriba de la terminal
Ojala que con esto tu problema quede resuelto. Saludos.