【发布时间】:2020-05-13 04:43:35
【问题描述】:
我正在制作一个 Discord.js 机器人,该机器人的功能之一是在用户键入“!fact”时从 Javascript 事实数组中返回一个随机项。这个问题已经被其他用户问了很多,我使用了给他们的答案中的代码,但我遇到了一个问题:机器人“卡在”一个事实上,并且不会每次都随机遍历列表输入“!fact”。 这是我到目前为止的代码示例:
var facts = [ "Fact 1", "Fact 2", "Fact 3", "Fact 4" ]
var fact = Math.floor(Math.random() * facts.length);
然后,让机器人发送消息:
client.on('message', message => {
if (message.content === "!fact") {
message.channel.send(facts[fact]);
console.log('Message sent');
}
});
但这只会一遍又一遍地返回类似Fact 1 的东西,无论“!fact”被输入多少次。我怎样才能让它每次都改变?
【问题讨论】:
-
将您的事实值放入 if 条件中,它会不断更新它
-
浏览器速度测试说如果条件是相同的速度内部函数调用和赋值,并且node.js速度测试建议一个函数(var fact = ()=> Math.floor(Math.random() * fact.length);) 调用稍快
标签: javascript bots discord discord.js