Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数组中的字符串中挑出单词_Javascript_Jquery - Fatal编程技术网

Javascript 从数组中的字符串中挑出单词

Javascript 从数组中的字符串中挑出单词,javascript,jquery,Javascript,Jquery,我已经花了几个小时,将近8个小时,我正在尝试使用jQuery/JS创建两个数组,其中一个是动态的,因为它正在加载聊天脚本,并将被空格分割成一个数组,例如: 字符串:你好,我叫彼得 转换为(消息)数组:['hello'、'my'、'name'、'is'、'peter'] 我有一组数组来查找特定的单词,在本例中,让我们使用: (查找数组)['hello','peter']但是,此数组将包含多达20个元素,我需要确保它有效地搜索消息数组,请提供帮助。如果我理解得很好,您要求在给定第二个数组的情况下筛选

我已经花了几个小时,将近8个小时,我正在尝试使用jQuery/JS创建两个数组,其中一个是动态的,因为它正在加载聊天脚本,并将被空格分割成一个数组,例如:

字符串:你好,我叫彼得

转换为(消息)数组:['hello'、'my'、'name'、'is'、'peter']

我有一组数组来查找特定的单词,在本例中,让我们使用:
(查找数组)['hello','peter']但是,此数组将包含多达20个元素,我需要确保它有效地搜索消息数组,请提供帮助。

如果我理解得很好,您要求在给定第二个数组的情况下筛选字符串数组(来自传入字符串)

在您描述的情况下,您当然不必担心效率,真的。除非你收到的信息被允许非常大

鉴于此,有十几种选择,我认为这是最简洁的:

const whitelist = [
  'hello',
  'peter'
]
const message = 'hello my name is Peter'.split(' ')

const found =  message.filter(function(word) {
  return whitelist.indexOf(word) > -1
}
您可以处理以下情况:

const whitelistLower = whitelist.toLowerCase()
const foundInvariantCase = message.filter(function(word) { 
  return whitelist.indexOf(word.toLowerCase()) > -1
}
或使用:


我可以帮你

var arrayOfWords = $(".echat-shared-chat-message-body").last().text().split(" ");
这段代码实际上正在工作!我去了一个开放的聊天室,这样我就可以测试了

因此,只需将单词replace替换为DOM对象:)


为什么有这么多jquery…为了你的部分问题。。。它应该匹配find数组中的任何元素还是所有元素?如果是前者。如果是后者,“20个元素”和“有效”。。。真的吗?如果链接与问题无关,最好不要包含它们。这篇文章可能被(错误地)检测为垃圾邮件。这是相关的,我用那个网站来证明这个解决方案
var arrayOfWords = $(".echat-shared-chat-message-body").last().text().split(" ");
var arrayOfWords = $("REPLACE").last().text().split(" ");