每次机器人回答时如何从数组中选择一个随机字符串
how to pick a random string from an array every time the bot answers
我正在尝试开发一个用于聊天的简单 discord 机器人。我创建了一个字符串数组,该数组应该存储机器人可以给出的所有答案,然后让程序根据该数组给出随机响应。现在机器人确实给出了一个随机答案,但他只从数组中随机选择一个,并且只有在他重新启动时才更改它。我想知道是否有办法让机器人每次说些什么时都选择不同的答案。
这是当前代码:
const stringarray = [
'string1',
'string2',
'string3',
];
let randomNumber = Math.floor(Math.random()*stringarray.length);
client.on("message", msg => {
if (msg.content === "string0") {
msg.reply(stringarray[randomNumber]);
}
})
问题是您在主代码中而不是在 .on('message')
回调中设置 randomNumber
!因此,代码会在您启动服务器时执行(因此只会执行一次)。您需要将它移动到回调中,以便它为每次调用计算一个新的随机值:
client.on("message", msg => {
if (msg.content === "string0") {
let randomNumber = Math.floor(Math.random()*stringarray.length);
msg.reply(stringarray[randomNumber]);
}
})
我正在尝试开发一个用于聊天的简单 discord 机器人。我创建了一个字符串数组,该数组应该存储机器人可以给出的所有答案,然后让程序根据该数组给出随机响应。现在机器人确实给出了一个随机答案,但他只从数组中随机选择一个,并且只有在他重新启动时才更改它。我想知道是否有办法让机器人每次说些什么时都选择不同的答案。 这是当前代码:
const stringarray = [
'string1',
'string2',
'string3',
];
let randomNumber = Math.floor(Math.random()*stringarray.length);
client.on("message", msg => {
if (msg.content === "string0") {
msg.reply(stringarray[randomNumber]);
}
})
问题是您在主代码中而不是在 .on('message')
回调中设置 randomNumber
!因此,代码会在您启动服务器时执行(因此只会执行一次)。您需要将它移动到回调中,以便它为每次调用计算一个新的随机值:
client.on("message", msg => {
if (msg.content === "string0") {
let randomNumber = Math.floor(Math.random()*stringarray.length);
msg.reply(stringarray[randomNumber]);
}
})