简体   繁体   English

如何检测 args 是否为空 (discord.js)

[英]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
}

More About Arrays 更多关于数组

您可以只测试数组的第一个元素。

if(!args[0]) return;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM