检查字符串是否包含关键字数组

时间:2017-12-12 16:43:04

标签: javascript arrays string keyword

我在互联网上找不到我需要的东西,或者我可能不会使用正确的单词,但这是我的问题。

我有一个字符串例如: 好机器人,告诉我Foo程序的文档。

还有我的关键字:["bot","doc", "show", "Foo"]

我希望如果字符串包含3个或更多关键字,我的函数将返回例如

的消息

我想过



var message = "Ok bot, show me the doc of the Foo program.";
var keywords = ["bot","doc","show","foo"];
if(keywords.indexOf(message) >=3 ){
  console.log('ok I understand');
}




但它不起作用

有人能帮助我吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您正在调用indexOf函数,该函数返回数组中的项索引。在您的情况下,您正在检查数组关键字中的message,这是逻辑上错误的条件

您可以通过Array#filterString#includes过滤找到的关键字,然后查看其长度。



var message = "Ok bot, show me the doc of the Foo program.";
var keywords = ["bot","doc","show","foo"];

var keywordsFound = keywords.filter(item => message.includes(item));

if(keywordsFound.length >= 3 ) {
  console.log('ok I understand');
}