1
respuesta

[SOLUCIÓN] Ejercicio Recetas de Armando

La solución genera un aviso en caso de que el usuario ingrese un ingrediente repetido y pregunta de nuevo por otro ingrediente que no esté en la lista.

        function imprimir(mensaje){

            document.write("<big>" + mensaje + "</big>");

        }

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

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

                if(ingrediente == ingredientes[i]){

                    duplicado = true;
                    alert("¡Has ingresado un ingrediente repetido!");
                    break;
                }

            }

            if(duplicado == false){

                ingredientes.push(ingrediente);
                contador++;

            }
        }

        imprimir(ingredientes);
1 respuesta

¡Hola Sebastián!

En este código se está pidiendo al usuario que ingrese una cantidad de ingredientes y luego se pide que ingrese cada uno de ellos. Si el usuario ingresa un ingrediente repetido, se muestra un mensaje de alerta y se le pide que ingrese otro ingrediente que no esté en la lista. Finalmente, se imprime la lista de ingredientes ingresados sin repetir.

La solución parece estar bien planteada y funciona correctamente. Sin embargo, podrías mejorar la experiencia del usuario si en lugar de mostrar un mensaje de alerta, se le pide que ingrese otro ingrediente directamente en el prompt. De esta manera, el usuario no tendría que cerrar la alerta y luego volver a ingresar otro ingrediente.

Por ejemplo, podrías modificar el código de la siguiente manera:

function imprimir(mensaje){
  document.write("<big>" + mensaje + "</big>");
}

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);
  if (ingredientes.includes(ingrediente)) {
    ingrediente = prompt("¡Has ingresado un ingrediente repetido! Por favor, ingresa otro ingrediente:");
  } else {
    ingredientes.push(ingrediente);
    contador++;
  }
}

imprimir(ingredientes);

En este caso, se utiliza el método includes() para verificar si el ingrediente ya está en la lista. Si es así, se le pide al usuario que ingrese otro ingrediente directamente en el prompt. Si no, se agrega el ingrediente a la lista y se incrementa el contador.

Espero que esta respuesta te haya sido útil. ¡Buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios! :)