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)
1
respuesta

[Duda] Recetas de Armando ciclando en ingrediente 1

Alguien podria ayudarme? Por alguna razon mi codigo se queda ciclado en el ingrediente 1

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

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

            if(ingrediente == ingredientes[i]){
                encontrado = true;
                console.log(encontrado);
                break;
            }
            if(encontrado == false){
                ingredientes.push(ingrediente);
                contador++;
                console.log(encontrado);
            }
        }

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

    console.log(ingredientes);

</script>
1 respuesta
solución!

Encontré el error, resulta que puse el

if(existe == false){
    ...
}

Dentro del ciclo for, por lo tanto , ya que i = 0 y ingredientes.length = 0, se quedaba ciclando el programa. Anexo solución!

<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(let i = 0; i < ingredientes.length; i++){
            if(ingrediente == ingredientes[i]){
                existe = true;
                alert(`Repetido ${ingrediente}`);
                break;
            }    
        }
        if(existe == false){
            ingredientes.push(ingrediente);                                
            contador++;  
        }           

    }

    console.log(ingredientes);

</script>