Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

No logro darme cuenta del error. Ejercicio: ¡No hay ingredientes repetidos aquí!

¡Hola!

Intento hacer el código pero desde el primer ingrediente que ingreso me da el error de que está repetido, pasa lo mismo con el resto de los ingredientes que ingreso.

¿En qué me estoy equivocando?

<meta charset="UTF-8">

<h1>Recetas de Armando</h1>

<script>

    var ingredientes = [];
    var cantidad = parseInt(prompt("¿Cuántos ingredientes vas a añadir?"));
    var contador = 1;

    while(contador <= cantidad) {
        var ingrediente = prompt("Informe el ingrediente " + contador);
        ingredientes.push(ingrediente);
        contador++;

        var existe = false;

        for(var posicion = 0; posicion < ingredientes.length; posicion++) {

            if(ingredientes[posicion] == ingrediente) {

                existe = true;
                alert("Ya se ha ingresado " + ingrediente + ". Por favor ingrese otro.");
                break;
            }
        }

        if(existe == false) {
            ingredientes.push(ingrediente);
            contador++;
        }
   }


    console.log(ingredientes);
2 respuestas
solución!

Es que esta mal planteado el código:

var ingrediente = prompt("Informe el ingrediente " + contador); ingredientes.push(ingrediente);

Al plantear lo anterior, siempre va ingresar a esta condición:

if(ingredientes[posicion] == ingrediente) y por lo tanto siempre te va a imprimir esto:

alert("Ya se ha ingresado " + ingrediente + ". Por favor ingrese otro.");

Fijate como mejorarlo para poder seguir adelante, exitos !

¡Muchas gracias!

Ahora si lo logré.

<meta charset="UTF-8">

<h1>Recetas de Armando</h1>

<script>

    var ingredientes = [];
    var cantidad = parseInt(prompt("¿Cuántos ingredientes vas a añadir?"));
    var contador = 1;


    while(contador <= cantidad) {
        var ingrediente = prompt("Informe el ingrediente " + contador);
        var existe = false;


        for(var posicion = 0; posicion < ingredientes.length; posicion++) {

            if(ingredientes[posicion] == ingrediente) {

                existe = true;
                alert("Ya se ha ingresado " + ingrediente + ". Por favor ingrese otro.");
                break;
            }
        }

        if(existe == false) {
            ingredientes.push(ingrediente);
            contador++;
        }
   }


    console.log(ingredientes);



</script>