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

我正在为我的机器人 (-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)

   }

});

我如何检测参数是否为空?



浮云间
浏览 187回答 4
4回答

小怪兽爱吃肉

因为 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);  }});

红糖糍粑

您可以通过简单地检查其length属性来检查空数组。例如,!args.length如果args没有元素,将返回 true,如果其中至少包含 1 个或多个元素,则返回 false您可以使用它来检查 args 是否为空if (!args.length) {   // Code To Execute If Args Is Empty   }

青春有我

仅当 args 是一个数组且不为空时才为真if (args instanceof Array && args.length)如果你需要它,请使用它if (!(args instanceof Array && args.length))

拉莫斯之舞

您可以只测试数组的第一个元素。if(!args[0]) return;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript