Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

si el presupuesto en el primer ejemplo era de 390 duda

MINUTO 5:00 a 5:28 primer ejemplo: Si el presupuesto en el primer ejemplo era de 390, y hay 2 posibles ciudades a las q podemos ir, con el presupuesto q serían: "Santiago de 380 y Montevideo de 200". Porq, solo aparece la ciudad de Santiago?? no se supone, q deberian e aparecer ambas, tanto Montevideo como Santiago, estan dentro del presupuesto. Agradezco la respuesta para intentar realizarlo gracias.

4 respuestas

Hola Diego, espero que estés bien.

El código está hecho para retornar solo una ciudad, para retornar todas las ciudades tendría que ser una otra lógica.

Si quieres puedes enviar tu código por aquí y te ayudo a adaptarlo para lo que deseas hacer.

Puedes lograr compartir haciendo clic en este botón y colocando tu código entre los acentos:

https://cdn1.gnarususercontent.com.br/6/409216/a3962870-1dd0-4f80-a135-54b482f9094a.png

¡Saludos!

Si este post te ayudó, por favor marca como solucionado ✓. ¡Continúa con tus estudios!
const ciudadesDisponibles = new Array("Bogotá", "Lima", "Santiago", "Montevideo");
const precioCiudad = new Array(500, 400, 380, 200);
const presupuestoDisponible = 210;

let i = 0;
//while se repite 0 o mas veces.
//Do 1 o mas veces.
while(precioCiudad[i] > presupuestoDisponible && i < ciudadesDisponibles.length) {
    i++;
}
if (i == ciudadesDisponibles.length)
           console.log("No tenemos pasajes disponibles ");
       else
    console.log("Puedes comprar pasaje para: "+ciudadesDisponibles[i]);
solución!

Hola Diego,

Gracias por compartir tu código.

Primeramente necesitamos filtrar de las "ciudades disponibles" las que están al alcance de nuestro presupuesto. En JavaScript tenemos un metodo perfecto para esto, que se llama filter.

Con filter podemos iterar por un array y en cada elemento el hará una verificación de una condición que nosotros pasamos a el, al final retornará todos los elementos que pasaron en la verificación.

Con esto no necesitaremos más del while, solo de la verificación si tenemos ciudades a donde ir con nuestro presupuesto o no.

const ciudadesDisponibles = new Array(
  "Bogotá",
  "Lima",
  "Santiago",
  "Montevideo"
);
const precioCiudad = new Array(500, 400, 380, 200);
const presupuestoDisponible = 420;

// Creamos una variable de destinos posibles que recibirá el resultado del filter
// Dentro del filter pasamos una función arrow.
// El primer parametro de la función es el elemento del array, o sea la ciudad, y el segundo es el indice
// Luego pasamos una condición que si el precio de la ciudad es menor o igual a nuestro presupuesto 
// Al final será retornado un nuevo array con los elementos filtrados que en este caso será las ciudades
// posibles de viajar

let destinosPosibles = ciudadesDisponibles.filter(
  (ciudad, i) => precioCiudad[i] <= presupuestoDisponible
);

// Aqui verificamos si el array de destinos posibles es igual que cero
// Si lo es, decimos que no hay pasajes disponibles
// Si no lo es, decimos que se puede comprar los pasajes y agregamos las ciudades disponibles
// Usamos el metodo join para juntar las ciudades del array en una string 
// y pasamos una coma con espacio como parametro para separar las ciudades 

if (destinosPosibles.length === 0) {
  console.log("No tenemos pasajes disponibles ");
}
else {
  console.log("Puedes comprar pasaje para: " + destinosPosibles.join(", "));
}

Te dejaré algunas lecturas adicionales en caso de que no conozcas los metodos filter y join:

https://www.aluracursos.com/blog/manipulacion-de-array-con-map-filter-y-reduce

https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/join

Cualquier duda que tengas no dejes de preguntar, estaré aqui para ayudarte.

¡Saludos!

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

Muchas Gracias!