【问题标题】:Discord.js logical operator isn't working with my argumentsDiscord.js 逻辑运算符不适用于我的参数
【发布时间】:2021-06-30 04:52:01
【问题描述】:

我试图让我的机器人在第一个 arg 不是我放置的选项之一时返回一条消息,但它不起作用并继续发送消息,即使 arg 是红色或蓝色

if(args[0] !== 'red' || 'blue') return message.channel.send('That isn\'t a valid color')

【问题讨论】:

  • "red" || "blue" 计算结果为 "red"。因此,您基本上是在检查 args[0] 是否不是 red

标签: node.js discord.js


【解决方案1】:

在您的代码中:args[0] !== 'red' || 'blue'!== 运算符的优先级高于 ||,因此其行为类似于 (args[0] !== 'red') || 'blue'

这在 JS 中是完全有效的,因为|| 运算符如果找到就会返回非布尔操作数。

所以 true || 'blue' == true

false || 'blue' == 'blue' == true

一种解决方案:

if(args[0] !== 'red' && args[0] !== 'blue')

【讨论】:

  • 我可以多次使用“&&”吗?我想提出其他选择
  • 如果你有更多的项目要检查,你应该使用类似['red','blue','yellow'].includes(args[0])的东西。
猜你喜欢
  • 2011-04-11
  • 1970-01-01
  • 2023-03-12
  • 2020-12-20
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多