如何从discord.js中的JSON文件中选择随机对象
我已经做了一些搜索,我在这里找到了一些帖子,但我的代码不想工作。基本上我正在制作一个不和谐的机器人,我想从一个 JSON 文件中随机选择一个对象。
这是我的命令:
const UserData = require('../data/users.js');
const monster = require('../data/monsters.json');
module.exports = {
name: 'battle',
aliases: ['fight'],
cooldown: 0,
description: 'User fights against a monster alone or in group',
execute(client, message, args) {
let enemy = monster[Math.floor(Math.random() * monster.length)]
UserData.findOne({
userID: message.author.id
}, (error, userdata) => {
if (error) console.log(error);
if (!userdata) {
return message.reply(`you don't have an account!`);
} else {
console.log(enemy);
return message.channel.send(`${enemy} spawned!`);
}
})
}
}
这是我的 JSON 文件:
"1" : {
"name": "Blue Slime",
"hp": 20,
"atk": 12,
"def": 10,
"spatk": 3,
"spdef": 12,
"spd": 100,
"gold": 10,
"xp": 50,
"lvl": 1
},
"2": {
"name": "Red slime",
"hp": 20,
"atk": 12,
"def": 10,
"spatk": 3,
"spdef": 12,
"spd": 100,
"gold": 10,
"xp": 50,
"lvl": 1
},
"3": {
"name": "Green slime",
"hp": 20,
"atk": 12,
"def": 10,
"spatk": 3,
"spdef": 12,
"spd": 100,
"gold": 10,
"xp": 50,
"lvl": 1
}
}
如果我想手动将对象放入命令中,然后随机选择它们,它可以工作,如果我输入的不是“monster.length”,那么它也可以工作,但如果它应该是 3,我仍然没有定义。这样我也总是从monster.length 在控制台日志中获取未定义。我究竟做错了什么?