我有一个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--;
}
})
答案 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;
};