每次机器人回答时如何从数组中选择一个随机字符串

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]);
  }
})