Solo para confirmar, la función del for en este caso sería básicamente recorrer el arreglo por medio de la variable "posición" para encontrar valores repetidos, o no es así?.
Mi otra duda es, si en caso de ser esa su función, al entrar nuevamente en el while, el for se ejecutaria de nuevo y la variable posición volvería a inicializarse en cero, o no ?
<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(var posicion = 0; posicion < ingredientes.length; posicion++) {
if(ingredientes[posicion] == ingrediente){
existe = true;
alert("repetido " + ingrediente);
break;
}
}
if(existe == false) {
ingredientes.push(ingrediente);
contador++;
}
}
console.log(ingredientes);
</script>