Javascript 是否可以使bot响应数组中包含一个元素的消息

Javascript 是否可以使bot响应数组中包含一个元素的消息,javascript,arrays,discord,discord.js,bots,Javascript,Arrays,Discord,Discord.js,Bots,我正在努力使我目前正在开发的机器人能够响应消息,我真的做到了 但是,我希望bot响应数组中的一个元素/字符串,这样我就不必重复编写(message.includes('example'))| |(message.includes('example2'))。 我试着用一个if语句来做这件事,因为这是我知道的唯一方法 client.on('message',message=>{ if(message.author.bot)返回; const fixgreet=message.content.slic

我正在努力使我目前正在开发的机器人能够响应消息,我真的做到了

但是,我希望bot响应数组中的一个元素/字符串,这样我就不必重复编写
(message.includes('example'))| |(message.includes('example2'))
。 我试着用一个if语句来做这件事,因为这是我知道的唯一方法

client.on('message',message=>{
if(message.author.bot)返回;
const fixgreet=message.content.slice();
const greets=fixgreet.toLowerCase();
const gnvars=fs.readFileSync('./commands/url/gn.txt').toString('utf-8');
const gnraw=gnvars.split('\n');
if(问候语。包括(gnraw)){
client.responses.get('gn').execute(message,fixgreet);
}
它根本不会返回错误,但也不会响应。
gnraw
是包含元素的数组,
greetings
是用户发送的消息内容,当消息内容包含
gnraw
中的一个元素时,if语句应为true,并应发送响应

gn.txt是一个带有字符串的文本文件,我使用以下方法将其创建为数组(
gnraw
):

const gnvars=fs.readFileSync('./commands/url/gn.txt').toString('utf-8');
const gnraw=gnvars.split('\n');
下面是一个他们看起来会是什么样的例子

文本文件可以是:

gm
good morning
good day
然后,
gnraw
将是从文本文件格式化的
['gm','good morning','good day']

作为我希望发生的事情的一个例子

用户A:“早上好。”*发送一条消息,然后标识为“问候语”

用户B:“GM”*标识为问候语

如果
gnraw
中的一个元素包含在
问候语中,则
机器人应以“早上好”作为响应

请告诉我如何使bot响应数组中包含一个元素的消息。
我对JavaScript相当陌生。

我在评论中建议的代码可以工作(不确定您所说的对它不起作用)-但它有一个缺陷

如果
问候语
是“我有很多痰”-它将与

因此,让我们尝试另一种方法

function fn(keywords, target) {
    const res = keywords.map(s => new RegExp(`\\b${s}\\b`));
    return res.some(re => target.match(re));
}

client.on('message', message =>{

    if (message.author.bot) return;

    const fixgreet = message.content.slice();
    const greetings = fixgreet.toLowerCase();
    const gnvars = fs.readFileSync('./commands/urls/gn.txt').toString('utf-8');
    const gnraw = gnvars.split('\n');

    if (fn(gnraw, greetings)) {
        client.responds.get('gn').execute(message, fixgreet);
    }

因此..
fn
返回一个布尔值,如果在
问候语
字符串中找到一个
gnraw
值,这是正确的。好的,谢谢,我会试试。我会确保真正了解它。啊,对不起,我刚刚发现问题,显然文本文件中的数组不正确,我用一个没有ext的普通数组测试了它从另一个文件中提取。它很有效。谢谢你,我真的很抱歉浪费了你的时间。这不是浪费时间@HonsAh好吧……我相信这个问题对初学者会有帮助。@Hons-在字符串中搜索一个可能的字符串并不少见-写这个答案实际上触发了我重写一些代码(在
array
之前编写,有一个
some
方法)-因此,win-winComments不是用于扩展讨论的;此对话已经过。