是否可以查看 JSON 文件中的多个对象分组?

所以我希望制作一个不使用数据库的调平系统。是的,我知道数据库是更好的方法,但调平系统仅适用于我自己的服务器,该服务器没有大量人员交谈,而且我还没有学会如何使用数据库并集成它们,所以我想做我现在理解的更小的东西。


现在我已经将它设置为为发送消息的任何人保存级别和经验。我希望我可以使用另一个 JSON 文件来存储每个级别所需的 exp,而不是执行一堆“if else”语句。我想像这样设置


{

   "level": 2,

   "expRequired": 100

},


{

   "level": 3,

   "expRequired": 300

}

有没有一种方法可以使用此方法并检查每个分组并将其与消息作者当前的exp进行比较?就像是


if (memberExp[message.author.id].exp == levels.expRequired) {

   memberExp[message.author.id].level = levels.level

}


梵蒂冈之花
浏览 103回答 1
1回答

米琪卡哇伊

在你的问题中,级别可以很容易地是一个数组(在 JSON 文件中):levels : [0, 100, 300, 1000, 5000]然后你可以根据它匹配的最低条目检查exp,这将是你的级别for(let i = 0; i < levels.length; i++) {&nbsp; &nbsp; if (memberExp[message.author.id].exp > levels[i]) {&nbsp; &nbsp; &nbsp; &nbsp; memberExp[message.author.id].level = i&nbsp; &nbsp; }&nbsp;}更新我添加了等级检查,这样你就可以看到你获得了多少等级// remember the old levellet previousLevel = memberExp[message.author.id].level// level up according to xpfor(let i = 0; i < levels.length; i++) {&nbsp; &nbsp; if (memberExp[message.author.id].exp > levels[i]) {&nbsp; &nbsp; &nbsp; &nbsp; memberExp[message.author.id].level = i&nbsp; &nbsp; }&nbsp;}// check how many levels we gainedlet amountGained = memberExp[message.author.id].level - previousLevel// if we gained more than 0 we can display a messageif(amountGained > 0) {&nbsp; &nbsp; console.log(`Congrats! You gained ${amountGained} levels!`)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript