我正在尝试使用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,则字符串存在于数组中

09-25 16:56