node.js - 使用 switch 语句添加对消息的反应
问题描述
我计划在我的不和谐机器人中添加多个反应命令(因为它是为了好玩而创建的,所以我希望人们可以通过它找到有趣的东西)并且我希望将它变成 switch 语句,这样我就可以正确地看到哪个是where,没有大量的 if 语句。下面是我的代码当前在 if 语句中的样子,以及我在 switch 语句中使用的东西,虽然不完全,但有些工作。(虽然有不同的包含和表情符号,因为我目前拥有的东西很尴尬)
if (message.content.includes('test')) {
message.react("")
switch (message.content.toLowerCase()) {
case 'test':
message.react("")
break;
}
这有点奏效,尽管大写,但对仅包含“测试”一词的任何内容都有反应,但对于这个机器人,我希望它能够检测到消息中的任何位置,所以我决定尝试:
switch (message.content.includes()) {
case 'test':
message.react("")
break;
但这最终根本不起作用
任何建议如何使用 switch 语句,或者我应该坚持使用 else if 语句,尽管想要大量这些?
解决方案
类似的东西?
const reactToMessage = message => {
const messageTriggers = {
'cat': () => {
message.react('')
},
'dog': () => {
message.react('')
},
'cow': () => {
message.react('')
}
}
Object.keys(messageTriggers).forEach(trigger => {
message.toLowerCase().includes(trigger) && messageTriggers[trigger]()
})
}
// Usage
reactToMessage('Cat and dog goes to Cow!')
推荐阅读
- unity3d - Unity3d ProBuilder Spheres 导致高延迟?
- automated-tests - 在 Appium 中连接 XCAutomation 失败
- android - Android构建错误:无法获取'https://dl.google.com/dl/android/maven2/com/android/tools/build/aapt2/4.0.2-6197926/aapt2-4.0.2-6197926-osx。罐'
- git - 为什么 .gitignore 会在 pull 期间下载文件并在修改时产生冲突?
- macos - 使用 AppleScript / JXA 在 Apple Mail 中获取电子邮件 URL
- docker - XDebug 无法从 docker 容器连接到客户端
- android - 如何在android kotlin中检查手电筒是否打开
- java - 如何让用户在运行时为 Spring-data-JPA 选择数据库
- error-handling - Fastled没有足够的CPU能力?
- reactjs - 我无法在 MS Edge 的输入字段中将文本居中对齐