为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梵蒂冈之花 2023-07-06 19:48:22
所以我希望制作一个不使用数据库的调平系统。是的,我知道数据库是更好的方法,但调平系统仅适用于我自己的服务器,该服务器没有大量人员交谈,而且我还没有学会如何使用数据库并集成它们,所以我想做我现在理解的更小的东西。现在我已经将它设置为为发送消息的任何人保存级别和经验。我希望我可以使用另一个 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}
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

在你的问题中,级别可以很容易地是一个数组(在 JSON 文件中):


levels : [0, 100, 300, 1000, 5000]

然后你可以根据它匹配的最低条目检查exp,这将是你的级别


for(let i = 0; i < levels.length; i++) {

    if (memberExp[message.author.id].exp > levels[i]) {

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

    } 

}

更新


我添加了等级检查,这样你就可以看到你获得了多少等级


// remember the old level

let previousLevel = memberExp[message.author.id].level


// level up according to xp

for(let i = 0; i < levels.length; i++) {

    if (memberExp[message.author.id].exp > levels[i]) {

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

    } 

}


// check how many levels we gained

let amountGained = memberExp[message.author.id].level - previousLevel


// if we gained more than 0 we can display a message

if(amountGained > 0) {

    console.log(`Congrats! You gained ${amountGained} levels!`)

}


查看完整回答
反对 回复 2023-07-06
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信