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.