javascript - node.js 如何在字符串中搜索数组中的值

标签 javascript arrays search indexof

这很难解释,所以我只举一个例子。 我有一系列特定的关键字,如下所示:

const keywordArr = ['jim', 'john'];

然后我有一个字符串:

const message = 'Hello john, how are you doing today?'

我想检查 message 是否包含 keywordArr 中的值。我知道我可以循环遍历 keywordArr 中的每个值并像这样检查:

keywordArr.forEach(function(word) {
    if (message.toLowerCase().includes(word)) {
         rest of code here..
    }
}

但是,我每秒收到大约 5 条消息,因此该方法非常消耗性能。有什么有效的方法可以做到这一点吗?

最佳答案

您可以使用forEach()对于数组和 match()检查字符串是否包含。

演示

const keywordArr = ['jim', 'john'],
  message = 'Hello john, how are you doing today?';

keywordArr.forEach(v => {
  if (message.match(v)) console.log(`message contain ${v}`);
});

关于javascript - node.js 如何在字符串中搜索数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636181/

相关文章:

javascript - 使用数组向对象添加属性

python - 在大型 PDF 文件中搜索。使用什么技术?

javascript - 在 JS 中定位 SCSS 变量

JavaScript 函数破坏了我的页面跳转?

javascript - 通过 javascript 为 YouTube 流聊天 iframe 自定义 CSS 样式

php - 将多维数组的值存储到变量中

arrays - 在给定一些约束的情况下,如何找到数组的最大子集?

database - Oracle 数据库中不区分大小写搜索的性能

python - 使用 Numpy 查找给定多个数组值的索引

循环内的 JavaScript 闭包——简单实用的例子