Discord js .. 8ball无法正常工作

时间:2017-12-27 23:43:30

标签: javascript node.js discord discord.js

我的Discord机器人

有一个问题

似乎我的脚本没有产生随机结果。 它在我把它放在embed

之前就已经有效了
function doanswer() {
    var answers = ["Yes", "No", Maybe ]
    return answers[Math.floor(Math.random()*answers.length)];
}

var otazka = new Discord.RichEmbed()
  .setColor(0x88f9ed)
  .addField("Answer", ("your answer is: " + doanswer()));

3 个答案:

答案 0 :(得分:0)

您可以这样做,而不是将答案放在嵌入中:

"```" + "Answer \n" + "your answer is: " + doanswer() + "```"

你可能无法获得自定义颜色,除非有一种我不了解的方式,但无论如何这都会很好看。

答案 1 :(得分:0)

尝试一下:

function doanswer() {
    var answers = ["Yes", "No", "Maybe" ]
    i = Math.floor(math.random()*answers.length);
    return answers[i];
}

var otazka = new Discord.RichEmbed()
  .setColor(0x88f9ed)
  .addField("Answer", ("your answer is: " + doanswer()));

答案 2 :(得分:-1)

好像你的代码有2个问题:

  1. 你需要拥有"或者'围绕数组内的每个值。这意味着第一个代码块应如下所示:

    function doanswer() {
        var answers = ["Yes","No","Maybe"]
        return answers[Math.floor(Math.random()*answers.length)];
    }
    
  2. answers.length可能会导致你得到很多未定义的答案。这是因为您的数组只包含3个值。如果输入答案的长度(answers.length)大于2,那么随机数发生器可能会得到一个数字,例如5.如果随机数发生器要求输入5,那么答案中的值不存在= [&# 39;是','否','可能'然后代码会自动将其指定为未定义。

  3. 摘要/提示:用"覆盖您的价值观或者'并且不要将数字放在大于数组值的随机数发生器中,定义函数外的变量/数组,var可以用var或const替换(https://medium.com/javascript-scene/javascript-es6-var-let-or-const-ba58b8dcde75以获取更多信息)

    我建议您将代码更改为:

    function doAnswer() {
        var answers = ['Yes','No','Maybe'];
        message.reply(answers[Math.floor(Math.random()*2)]);
    }