如果用户说出“ 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());
}
答案 0 :(得分:1)
即使args
是一个空数组,您的if语句也永远不会返回true。这是因为![]
不等于true
。
相反,您应该检查args.length
或args[0]
是否虚假。如果数组为空,则args.length
将返回0,这是一个虚假值(!0
等于true),而args[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