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

Solucion receta

Receta modificada para no recibir ingredientes repetidos

<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 i = 0; i <= ingredientes.length; i++) {
            if (ingrediente == ingredientes[i]) {
                repetido = true;
            }
        }
        if (!repetido) {
            ingredientes.push(ingrediente);
            contador++;
        }else{
            alert("Este ingrediente ya existe, ingrese uno diferente")
        }


    }

    console.log(ingredientes);

</script>
4 respuestas

Consulta, ¿qué función cumple el signo de exclamación aquí? (!repetido)

el signo ! en javaScript funciona como el no o negación, en el código lo que esta diciendo es que si la variable repetida no es true, en este caso el signo ! me interpreta que lo que traiga la variable repetido lo convierte en lo contrario si viene.

Otra alternativa.

Saludos,

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);
    console.log(ingredientes.length)

    encontrar: {
        for (let i in ingredientes) {

            if (ingredientes[i] == ingrediente) {
                break encontrar;
            }
        }
        ingredientes.push(ingrediente)
    }

    contador++

}
console.log(ingredientes)

Excelente solución