如何让setInterval每次执行时随机输出字符串数组的不同元素?
问题解决:实现每次输出随机数组元素
问题根源
你当前代码里的randomElement是在setInterval外部定义的,只会在代码初始化时计算一次随机值,后续定时器触发时只会重复使用这个固定值,所以输出始终相同。
修复代码
把随机元素的计算逻辑移到定时器的回调函数内部,让每次定时器执行时都重新生成随机元素:
const data = [m1, m2, m3, m4, m5]; setInterval(function() { // 每次执行时重新挑选随机元素 const randomElement = data[Math.floor(Math.random() * data.length)]; minecraftBot.chat(randomElement); console.log("Sent Message " + randomElement); }, interval);
预期效果
修改后,每次定时器触发都会从数组data中随机选取一个元素,输出会符合你的需求:
m1 m5 m4 m3 ...
内容的提问来源于stack exchange,提问作者Fourtywwiadjs
相关产品推荐
相关产品推荐

