为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

浮云间 2023-06-09 17:01:58
我正在为我的机器人 (-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)   }});我如何检测参数是否为空?
查看完整描述

4 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

因为 0 是假的:


console.log(0 == false);

您可以使用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);

  }

});


查看完整回答
反对 回复 2023-06-09
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

您可以通过简单地检查其length属性来检查空数组。

例如,!args.length如果args没有元素,将返回 true,如果其中至少包含 1 个或多个元素,则返回 false

您可以使用它来检查 args 是否为空

if (!args.length) {
  // Code To Execute If Args Is Empty
  }
查看完整回答
反对 回复 2023-06-09
?
青春有我

TA贡献1784条经验 获得超8个赞

仅当 args 是一个数组且不为空时才为真

if (args instanceof Array && args.length)

如果你需要它,请使用它

if (!(args instanceof Array && args.length))


查看完整回答
反对 回复 2023-06-09
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

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

if(!args[0]) return;


查看完整回答
反对 回复 2023-06-09
  • 4 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信