Javascript 检查字符串是否包含任何不带regExp的字符串数组

Javascript 检查字符串是否包含任何不带regExp的字符串数组,javascript,arrays,string,Javascript,Arrays,String,我正在检查字符串输入是否包含任何字符串数组。它通过了大部分测试,但没有通过下面的测试 有人能解释我的代码为什么不能正常工作吗 function checkInput(input, words) { var arr = input.toLowerCase().split(" "); var i, j; var matches = 0; for(i = 0; i < arr.length; i++) { for(j =

我正在检查字符串输入是否包含任何字符串数组。它通过了大部分测试,但没有通过下面的测试

有人能解释我的代码为什么不能正常工作吗

     function checkInput(input, words) {
      var arr = input.toLowerCase().split(" ");
      var i, j;
      var matches = 0;
      for(i = 0; i < arr.length; i++) {
        for(j = 0; j < words.length; j++) {
          if(arr[i] == words[j]) {
            matches++;
          }
        }
      }
      if(matches > 0) {
        return true;
      } else {
        return false;
      }
    };

checkInput("Visiting new places is fun.", ["aces"]); // returns false // code is passing from this test
checkInput('"Definitely," he said in a matter-of-fact tone.', 
    ["matter", "definitely"])); // returns false; should be returning true;
功能检查输入(输入,字){
var arr=input.toLowerCase().split(“”);
varⅠ,j;
var匹配=0;
对于(i=0;i0){
返回true;
}否则{
返回false;
}
};
检查输入(“访问新地方很有趣。”,[“aces”]);//返回false//此测试通过的代码
checkInput(“‘当然’,”他用一种实事求是的语气说,
[“物质”,“绝对”]);//返回false;应该是真的;

谢谢你抽出时间

您可以为此使用函数方法。试试看

const words = ['matters', 'definitely'];
const input = '"Definitely," he said in a matter-of-fact tone.';
console.log(words.some(word => input.includes(word)));
您可以使用
array#includes
检查输入中是否存在单词,并将
输入
单词
转换为小写,然后使用
array#includes

功能检查输入(输入,字){
返回words.some(word=>input.toLowerCase()。包括(word.toLowerCase());
}
log(checkInput)(“当然,”他用一种实事求是的语气说,

[“物质”,“绝对”])这不是一个案例问题为什么不使用正则表达式?有很多非正则表达式的简单方法可以做到这一点
if(words.some(word=>input.includes(word)){/*做一件事*/}
在第一次匹配后停止。这是区分大小写的。OP需要不区分大小写的解决方案。不区分大小写与问题无关。非常非常清楚的是,你要把字符串小写。不鼓励吸血鬼。问题真的是“如何看一个字符串是否包含任何字符串数组”,这是一个明显的重复,是一个普通吸血鬼Q。它将被关闭,我的答案将消失。我只是想看看有没有更好的办法哈你是对的!顺便说一下,你的答案是个好答案+1.