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

Solución recetas, no acepta campos vacíos e informa los ingredientes ya agregados.

Hola a todos. Hice un pequeño arreglo para que no aceptara si el usuario ingresa un campo vacío y a su vez le informa cuantos ingredientes ya han agregado.

<meta charset="UTF-8">

<h1>Recetas de Armando</h1>
<p>El codigo me toma ingredientes de recetas y no permite repetir ingredientes ni tampoco agregar campos vacios.</p>

<script>

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


    while(contador <= cantidad) {
        let repetido=false;

        if(ingredientes.length===0){
            var ingrediente = prompt("Informe el ingrediente " + contador+".");
        }

        else{ var ingrediente = prompt("Informe el ingrediente " + contador+". Ingredientes agregados: "+ingredientes);

        }


        if(ingrediente==''){

                    alert("el campo no puede ser vacio");

                }

        else{


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


            if(ingrediente===ingredientes[i]){

                alert("informe un ingrediente no repetido");
                        repetido=true;
                        break;        
                    }

            }

            if(repetido==false){

                ingredientes.push(ingrediente);
                repetido=false;
                contador ++;
            }

            }


    }

    console.log("Sus ingredientes de la receta fueron: "+ingredientes);

</script>
3 respuestas

para que sirve let?

Me basto el título para corregir mi código que estaba mal recibía valores vacíos, no por duplicado pero si los agregaba al array. Muchas gracias, comparto el código.

<meta charset="UTF-8">

<h1>Recetas de Armando</h1>

<script>    

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

    function agregar(cantidad) {

        var ingredientes = [];        
        var contador = 1;

        while( contador <= cantidad) {

            var ingrediente = prompt("Informe el ingrediente " + contador);
            console.log(ingrediente);
            var encontrado = false;

            if (ingrediente != '') {
                for (var i = 0; i <= ingredientes.length; i++) {
                    if (ingrediente == ingredientes[i]) {
                        encontrado = true;
                        break;
                    }
                }        

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

        }

        return ingredientes
    }

    var receta = agregar(cantidad);

    console.log(receta);

</script>

"Alumno", segun este curso aun no lo vimos pero 'let' es otra forma de declarar una variable (como 'var' o 'const'). De este modo Diego se asegura el scope (alcance de la variable a local). Saludos

Hola "Alumno", es una manera de declarar variables. En el curso de principiante de programación hay un video de alura explicando un poco sobre estas variables, mira el link: https://www.youtube.com/watch?v=PztCEdIJITY&t=621s&ab_channel=AluraLatam.

Pero en cortas palabras let permite que el alcance en los scoopes sea más reducido, cuando se hace un código muy grande el alcance de var es mayor, lo que puede causar problemas más adelante en la declaración de variables. Te dejo más al respecto en este foro: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Statements/let#:~:text=expresi%C3%B3n%20legal%20JavaScript.-,Descripci%C3%B3n,importar%20el%20%C3%A1mbito%20del%20bloque.

Gracias Camilo por tus aportes, yo tuve muchos problemas al intentar resolver el código, pero al final lo hice y me alegra que te haya servido. Gracias por compartir el tuyo y por ayudar a responder a "alumno".