我想对discord.js进行切换,在该位置上,当用户已经拥有提到的角色时,该角色将被删除;如果他没有该角色,则该角色将被附加。所以这里的代码是

let tempRole = message.guild.roles.find("name", args);

            if(message.member.roles.has(tempRole)) {
            console.log(`User has the role`);
        }


args是命令参数的数组,例如“!role [带空格的角色名称]”
因此,如果我具有角色“ Test”,并且键入“!role Test”,它将输出“ User has the role”
那么如果用户没有该角色,相反的代码又如何呢?
因为

else if(message.member.roles.has(!tempRole)) {
            console.log(`User has not the role`);
        }


并不是很有效,但是'!'我唯一知道否定结果的东西

最佳答案

!运算符会否定在右侧找到的任何内容,在您的情况下,您只是在否定tempRole,但是您真正想要的是否定has调用的结果,如下所示:

!message.member.roles.has(tempRole)


但是,由于已经有一个if语句验证用户是否具有您可以使用else的角色。

let tempRole = message.guild.roles.find("name", args);

if(message.member.roles.has(tempRole)) {
  console.log(`User has the role`);
} else {
  console.log(`User has not the role`);
}


甚至使用三元运算符更短

message.member.roler.has(tempRole)
  ? console.log('User has the role')
  : console.log(`User has not the role`);

关于javascript - 否定JavaScript中的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50451049/

10-11 12:49