遍历数组以检查字符串是否```包含```另一个字符串
Iterating over array to check whether strings ```includes``` another string
使用includes
方法检查数组中的字符串是否包含另一个字符串。基本上就像一个搜索功能类型的东西。
这是我目前所拥有的
this.findIngredient = function(ingredientName) {
for (i=0; i < this.ingredients.length; i++) {
if (this.ingredients[i].includes(ingredientName)) {
return true
break
} else {
return false
}
}
}
我不确定的是为什么当 this.ingredient
确实包含一个包含 ingredientName
的字符串时它仍然输出 false
.
对于上下文,这是 this.ingredient
数组
this.ingredients = ["500g plain flour", "1 tsp fine salt", "2 heaped tsp baking powder"]
从循环中删除 else 块应该可以解决问题。
解释-
当 this.ingredients[i].includes(ingredientName)
为 false
时,else 块为 运行。在您的代码中,当 else 块 returns false
时,这意味着您的循环将没有机会检查成分数组中的每个元素,因为该函数在看到 [=19 时将停止执行=]声明。
使用includes
方法检查数组中的字符串是否包含另一个字符串。基本上就像一个搜索功能类型的东西。
这是我目前所拥有的
this.findIngredient = function(ingredientName) {
for (i=0; i < this.ingredients.length; i++) {
if (this.ingredients[i].includes(ingredientName)) {
return true
break
} else {
return false
}
}
}
我不确定的是为什么当 this.ingredient
确实包含一个包含 ingredientName
的字符串时它仍然输出 false
.
对于上下文,这是 this.ingredient
数组
this.ingredients = ["500g plain flour", "1 tsp fine salt", "2 heaped tsp baking powder"]
从循环中删除 else 块应该可以解决问题。
解释-
当 this.ingredients[i].includes(ingredientName)
为 false
时,else 块为 运行。在您的代码中,当 else 块 returns false
时,这意味着您的循环将没有机会检查成分数组中的每个元素,因为该函数在看到 [=19 时将停止执行=]声明。