如何将JSON文件中的数字减至0?

时间:2019-04-29 09:49:08

标签: discord.js

我有一个JSON文件,并且具有特定工作人员的静音 我想将其递减至0 我该怎么办?

我还希望代码减少全体员工的静音程度

client.on('message', message => {

  if(!staffstats[message.author.id]) staffstats[message.author.id] = {
    mutes: 0,
    bans: 0,
    warns: 0,
    tickets: 0,
    appeals: 0,
    vips: 0,
    WarnedTimes: 0
  }

  if(message.content === prefix + "mutes-reset"){
    user = message.mentions.users.first();

    staffstats[user.id].mutes--;
  }
})

1 个答案:

答案 0 :(得分:1)

您接近了!您可以执行staffstats[user.id].mutes = staffstats[user.id].mutes - 1;,但是您确实要求直到0 ,因此在更改值之前进行简单检查就足够了:

if (!staffstats[user.id].mutes <= 0) //if mutes value is NOT lower or equal to 0, do:
  staffstats[user.id].mutes = staffstats[user.id].mutes - 1; //reduces current value of mutes by 1

对于decrement all staff members mutes,您需要知道工作人员是谁,以及他们的ID。假设您知道这一点,则可以遍历一系列用户ID。

如果仅将所有工作人员的所有值存储在对象({})中,则可以对所有键(这些键都是用户ID)执行Object.keys(staffstats);,因为它在您可以循环访问的数组。

var staffId = ['12345', '23456', '34567']; //this is just an example array
staffId.forEach(id => { //loop through array of staffId, storing value in id variable
  //same method as above
  if (!staffstats[id].mutes <= 0)
    staffstats[id].mutes = staffstats[id].mutes - 1;
};