不知道如何解决"times is not defined"的错误



我一直得到错误:

for(i=0; i<num; i++){
^
ReferenceError: i is not defined
at Client.<anonymous> (/home/runner/Ploatjs/dist/index.js:52:18)
at Client.emit (node:events:402:35)
at Client.emit (node:domain:475:12)
at MessageCreateAction.handle (/home/runner/Ploatjs/node_modules/discord.js/src/client/actions/MessageCreate.js:26:14)
at Object.module.exports [as MESSAGE_CREATE] (/home/runner/Ploatjs/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (/home/runner/Ploatjs/node_modules/discord.js/src/client/websocket/WebSocketManager.js:351:31)
at WebSocketShard.onPacket (/home/runner/Ploatjs/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
at WebSocketShard.onMessage (/home/runner/Ploatjs/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
at WebSocket.onMessage (/home/runner/Ploatjs/node_modules/ws/lib/even-target.js:199:18)
repl process died unexpectedly: exit status 1

使用下面的代码:

if(message.content.startsWith("p!generate")){
let args = message.content.split(" ");
let num = args[1]
if(isNaN(num)) return message.reply("Number of generate must be numeric.")
let array = ["Common", "Uncommon", "Rare", "Epic", "Legendary", "Exotic", "Mythic"]
let items = []
for (i = 0; i < num; i++) {
let rand = Math.floor(Math.random() * array.length)
let item = array[rand]
items.push(item)
}
message.channel.send(items.join(", "))
}
})

我的代码旨在生成选定数量的稀有性并发送它。

将列表设置为数组

client.on("messageCreate", async message => {
if(message.content.startsWith("p!generate")){
let args = message.content.split(" ");
let num = args[1]
if(isNaN(num)) return message.reply("Number of generate must be numeric.")
let array = ["Common", "Uncommon", "Rare", "Epic", "Legendary", "Exotic", "Mythic"]
let items = []
let i = 0;
while (i<num){
let rand = Math.floor(Math.random() * array.length)
let item = array[rand]
items.push(item)
i++
}
message.channel.send(items.join(", "))
}
})

根据您当前的问题,您正在获得错误i is not defined,因为您尚未将i定义为变量,但您正在for循环中使用它。您所要做的就是将for循环的第一行改为:

for (var i = 0; i < num; i++) {
//...
}

最新更新