我正在尝试使用string.includes()方法搜索字符串数组中是否存在字符串,如下所示
var theString = "clovers are the best";
var theArray = ["lovers", "loved", "clove", "love", "clovers"];
for (i = 0; i < theArray.length; i += 1) {
if (theString.includes(theArray[i])) {
console.log(theArray[i]);
}
}
除了预期的“三叶草”之外,我得到的输出还包括“爱好者”,“丁香”和“爱”。如何强制搜索仅查找整个字符串?
最佳答案
您正在测试数组的每个元素,以查看字符串中是否存在该元素。您可以仅测试数组以查看特定字符串是否为成员,这与您对问题的描述更接近。
var theString = "clovers";
var theArray = ["lovers", "loved", "clove", "love", "clovers"];
var idx = theArray.findIndex( e => e === theString );
console.log(idx);
// finding a string done two ways
idx = theArray.indexOf( theString );
console.log(idx);
如果idx不为-1,则字符串存在于数组中