javascript - 在 discord.js 上使用 8ball 命令时遇到问题
问题描述
如果用户说 !8ball(问题),它可以正常工作,但如果他们只说 !8ball 而没有问题,它不会回答提出问题“Escriba una pregunta”的消息。
function doMagic8BallVoodoo() {
var rand = ['Si?', 'No me digas :0', 'nose, espero haberte ayudado', 'No >:)', 'Si tu lo crees', '._.', 'Si!'];
return rand[Math.floor(Math.random()*rand.length)];
}
// Later in the code:
if(command === "8ball")
if (!args) return message.reply(`Escriba una pregunta.`);
{
message.channel.send('**La respuesta a tu pregunta es** ' + doMagic8BallVoodoo());
}
解决方案
即使args
是一个空数组,你的 if 语句也永远不会返回 true。这是因为![]
不等于true
。
相反,您应该检查args.length
orargs[0]
是否为假。如果数组为空,args.length
将返回 0,这是一个假值(!0
等于 true),并且args[0]
将返回0 undefined
,这也是一个假值(!undefined
等于 true)。
此外,您在声明之后if
放置了括号,这似乎不正确。
function doMagic8BallVoodoo() {
var rand = [
'Si?',
'No me digas :0',
'nose, espero haberte ayudado',
'No >:)',
'Si tu lo crees',
'._.',
'Si!',
];
return rand[Math.floor(Math.random() * rand.length)];
}
// Later in the code:
if (command === '8ball') {
if (!args.length) return message.reply(`Escriba una pregunta.`);
message.channel.send(
'**La respuesta a tu pregunta es** ' + doMagic8BallVoodoo()
);
}
console.log(![]); // false
console.log(!0); // true
console.log(!undefined); // true
推荐阅读
- python - 有没有办法通过python打开一个excel表?我想在不使用路径的情况下打开它
- c++ - 关于这个函数中参数的问题
- javascript - 如何显示多个条纹元素
- angular - 用于显示分层数据的嵌套 *ngFor 循环的性能问题
- rust - Rust:将特征对象转换为不同的类型
- angular - 如何将每个 @ContentChildren 放入使用 *ngFor 生成的单个 div
- php - 如何创建 TYPO3 后端模块设置页面?
- c - 编写一个 C 程序,读取 5 个数字并计算正数的个数并打印所有正数的平均值
- .htaccess - 如何覆盖 .htaccess 文件 Apache2 中的文件请求?
- python - Django:“is_admin”列中的空值违反非空约束