usando el método includes para verificar si las cadenas en una matriz incluyen otra cadena. Básicamente como un tipo de cosa de función de búsqueda.
Esto es lo que tengo hasta ahora
this.findIngredient = function(ingredientName) { for (i=0; i < this.ingredients.length; i++) { if (this.ingredients[i].includes(ingredientName)) { return true break } else { return false } } } lo que no estoy seguro es por qué cuando this.ingredient contiene una cadena que incluye el nombre del ingredientName , todavía genera false .
Para el contexto, esta es la matriz this.ingredient
this.ingredients = ["500g plain flour", "1 tsp fine salt", "2 heaped tsp baking powder"]Quitar el bloque else de tu bucle debería resolver el problema.
Explicación -
El bloque else se ejecuta cuando this.ingredients[i].includes(ingredientName) es false . Y en su código, cuando el bloque else devuelve false , lo que significa que su ciclo no tendrá la oportunidad de verificar cada elemento en la matriz de ingredientes ya que la función detendrá la ejecución cuando vea una declaración de devolución.