[英]how to detect if args is empty (discord.js)
I'm doing the 8ball command for my bot (-8ball ) but when user types only 8ball command the bot crash, my code is this:我正在为我的机器人 (-8ball) 执行 8ball 命令,但是当用户只输入 8ball 命令时机器人崩溃,我的代码是这样的:
client.on('message', message => { var command = "-8ball"; if (message.content.startsWith(command)) { const args = message.content.slice(command.length).split(/ +/g); let respuesta = ["Si", "No", "Tal vez", "Obvio", "Yo digo que si", "Yo digo que no", "Probablemente"] var random = respuesta[Math.floor(Math.random() * respuesta.length)] const embed = new Discord.MessageEmbed() .addField("Pregunta:", `${args.join(" ")}`) .addField("Respuesta:", `${random}`) .setColor("RANDOM") message.channel.send(embed) } });
how i can detect if the args are empty?我如何检测 args 是否为空?
Since 0 is falsy:由于 0 为假:
console.log(0 == false);
You could use Array.prototype.length
(which will return 0 if there are no elements in the array)您可以使用Array.prototype.length
(如果数组中没有元素,它将返回 0)
client.on("message", (message) => {
var command = "-8ball";
if (message.content.startsWith(command)) {
const args = message.content.slice(command.length).split(/ +/g);
if (!args.length)
return message.channel.send('You did not input a question');
let respuesta = [
"Si",
"No",
"Tal vez",
"Obvio",
"Yo digo que si",
"Yo digo que no",
"Probablemente",
];
var random = respuesta[Math.floor(Math.random() * respuesta.length)];
const embed = new Discord.MessageEmbed()
.addField("Pregunta:", `${args.join(" ")}`)
.addField("Respuesta:", `${random}`)
.setColor("RANDOM");
message.channel.send(embed);
}
});
this is true only if args is an array and is not empty只有当 args 是一个数组并且不为空时,这才是真的
if (args instanceof Array && args.length)
use this if you need it the other way around如果您反过来需要它,请使用它
if (!(args instanceof Array && args.length))
You can check for an empty array by simply checking its length
property.您可以通过简单地检查其length
属性来检查空数组。
For example !args.length
will return true if args
has no elements, false if it has atleast 1 or more elements inside it例如!args.length
如果args
没有元素,则返回 true,如果里面至少有 1 个或更多元素,则返回 false
You can use this to check if args is empty您可以使用它来检查 args 是否为空
if (!args.length) {
// Code To Execute If Args Is Empty
}
您可以只测试数组的第一个元素。
if(!args[0]) return;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.