Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

no entiendo que hice mal

<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 repetido = false;

        for (var posicion = 0; posicion < ingredientes.length; posicion++) {
            if (ingrediente [posicion] == ingrediente) {

            repetido = true;
            alert("repetido" + ingrediente);
            break;

            }
        }


        if (repetido = false) {

            ingredientes.push(ingrediente);
            contador++;
        }
    }

    console.log(ingredientes);

</script>
3 respuestas

Hola, Byron! Tienes un problema con la condición del for, porque la longitud del array de ingredientes va ir incrementando conforme cada iteración, por lo que debería ser "posicion <= ingredientes.length", luego en ese if de tu código estás comparando sólo el "ingrediente" que estás metiendo, mas no lo comparas con el array de "ingredientes"; prueba con "ingrediente == ingredientes[posicion]"

for (var posicion = 0; posicion < ingredientes.length; posicion++) {
            if (ingrediente [posicion] == ingrediente) {

            repetido = true;
            alert("repetido" + ingrediente);
            break;

De ahí, para entrar en una condición ésta debe ser solamente verdadera, de lo contrario se iría a un else. Prueba igual con dejar sólo if(repetido), para cuando sea: "repetido = true", la variable booleana sea true y entre a esa condición.

if (repetido = false) {

            ingredientes.push(ingrediente);
            contador++;
        }

Espero haberte ayudado (igual espero no haberte confundido). Que estés muy bien.

si entendi, pero hora no me pasa del ingrediente 1 y asi se queda

Bryon, es porque tu condición final está mal. Has puesto "if ( repetido = false)".... estas comparando, por ende es "if ( repetido == false)"...