javascript - 如果命令不存在,则以各种回复进行响应
问题描述
我想这样做,如果有人发送命令,如果它不是存储在 ./cmds/ 中的命令,它会返回一个随机响应。下面的代码不会出错,它允许有效命令通过,但无效命令没有任何响应。我缩短了代码并取出了一大堆响应和有效命令,以便在这里更高效。我不确定是什么导致缺乏响应或什么。
我最接近这项工作的是让它同时发送随机响应和命令响应。下面的代码只是我迄今为止制作的最简单的版本。
let response = [
'resp1',
'resp2',
'resp3'
]
let validCommands = [
'cmd1',
'cmd2',
'cmd3'
];
if (!validCommands) {
return message.channel.send(response[Math.floor(Math.random() * response.length)])
}
解决方案
js 中的数组是truly
,这意味着如果转换为布尔值,它们将转换为 true。因为validCommands
是恒定的,并且总是true
您的条件变为if (!true) {
并且响应永远不会执行。
我认为应该改为
if (! validCommands.includes(message.content)) { ... }
推荐阅读
- ssl-certificate - 如何使用无服务器自动续订 Google Cloud 上的 Cloud Run for Anthos 的 Let's Encrypt SSL 证书?
- react-native - navigation.getParam 不是对象
- javascript - 将 JavaScript 函数转换为 Dart:安全词
- python - 从另一个列表中删除一个字符列表
- python - 字典优化
- vba - 从子表单中删除多个记录
- c - 精心创建的结构抛出“取消引用指向不完整类型的指针”错误
- python - 检查一个单词是否是回文
- java - 如何从对象填充 android 中的文本?
- notepad++ - 如何使用记事本++删除文件夹中所有文件中的特定行?