Solución al reto de crear una receta sin ingredientes repetidos
Al analizar el código encontré un problema que podía escribir por ejemplo un mismo ingrediente de varias maneras por ejemplo: tomate, Tomate, TOMATE. El problema es que los iba a detectar como ingredientes diferentes entonces todos se ingresarían dentro del arreglo, entonces tras investigar encontré la función toLowerCase() que convierte el string en minúscula así todos los ingredientes se transforman y puedo evaluarlos para que no se repitan.
let ingredientes = [];
let cantidad = parseInt(prompt("¿Cuántos ingredientes vas a añadir?"));
let i = 1;
while(i <= cantidad) {
let ingrediente = prompt("Informe el ingrediente " + i);
// convierto el el del string en minúsculas para evitar diferencias entre caractéres y mejorar la validación para que no se repita el ingrediente.
ingrediente = ingrediente.toLowerCase();
let encontrado = false;
// Trigger para evitar ingredientes repetidos.
for(let j = 0; j < ingredientes.length; j++) {
// Verifica si existe el nombre en alguna posición del array.
if(ingredientes[j] == ingrediente) {
encontrado = true;
alert("repetido " + ingrediente);
break;
}
}
if(encontrado == false) {
ingredientes.push(ingrediente);
i++;
}
}
console.log(ingredientes);
document.write('Los ingredientes son: ' + ingredientes);