当前位置: 首页 > 知识库问答 >
问题:

Javascript Alexa函数在接受用户输入时返回[object object]

贺俊楚
2023-03-14

我的Alexa技能中有一个随机数函数,它使用Amazon.number插槽类型,如下所示的意图模式。

"slots": [
        {
          "name": "NumOne",
          "type": "AMAZON.NUMBER"
        },
        {
          "name": "NumTwo",
          "type": "AMAZON.NUMBER"
        }
      ],

我得到用户想要使用的数字,并将它们分别放入Num1和Num2,如下我的函数所示。

    var Num1 = this.event.request.intent.slots.NumOne;
    var Num2 = this.event.request.intent.slots.NumTwo;

    var result = Math.floor(Math.random() * (Num2 - Num1) + Num1);

    // Create speech output
    //var speechOutput = "The random number is: " + result;
    var speechOutput = Num1 + Num2;
    var cardTitle = "Random Number between " + Num1 + "and " + Num2;
    //response.tellWithCard(speechOutput, cardTitle, speechOutput);
    this.emit(':tell', speechOutput, cardTitle, speechOutput);

然而,当我打印Num1和Num2时,它们都显示为[object object],这意味着我不能用它们进行任何计算,因为结果总是为NaN。

{
  "version": "1.0",
  "response": {
    "shouldEndSession": true,
    "outputSpeech": {
      "type": "SSML",
      "ssml": "<speak> [object Object][object Object] </speak>"
    }
  },
  "sessionAttributes": {}
}

有没有办法修复这个问题,使Num1和Num2有数字值?

共有1个答案

艾雪风
2023-03-14

我把它留了一会儿,想了想问题,发现我所需要做的就是改变

var Num1 = this.event.request.intent.slots.NumOne;

var Num1 = this.event.request.intent.slots.NumOne.value;

这从槽中获得值,而不仅仅是槽类型(这是object,因此返回object object的原因)。

 类似资料:
  • 我似乎不知道为什么当我使用lambda时需要从方法返回一些东西时,我在IDE上会出现这个错误。 非常感谢。

  • 问题内容: 我想了解为什么下面的代码片段无法编译。将函数接受为可能具有任何返回类型的函数参数的Go方法是什么? 播放:https://play.golang.org/p/CqbuEZGy12 我的解决方案基于Volker的答案: 播放:https://play.golang.org/p/waOGBZZwN7 问题答案: 你绊倒了围棋新人一个非常普遍的误解:空接口并 不能 意味着“任何类型”。确实不

  • 出于我无法控制的原因,我必须在我的C代码中实现这个函数: 调用此函数时,编译器是否忽略它,或者是否仍然进行调用?例如: 两行代码的执行时间是相同的,还是第一行需要更长的时间?

  • 线程“main”中出现异常,请重试(是/否):java。util。非接触性异常 在爪哇。util。扫描仪。throwFor(未知来源) 在爪哇。util。扫描仪。下一个(未知源) 在支票兑换代码。main(CheckCurrencyCode.java:69) 我试图从用户那里输入y/n,当我运行代码时,我得到了上面的异常。

  • 问题内容: Python如何接受用户输入,并验证? 问题答案: 完成此操作的最简单方法是将方法置于循环中。当输入错误时使用,当你感到满意时使用。 当你的输入可能引发异常时 使用和检测用户何时输入了无法解析的数据。 实施你自己的验证规则 如果要拒绝Python可以成功解析的值,则可以添加自己的验证逻辑。 结合异常处理和自定义验证 以上两种技术都可以组合成一个循环。 将其全部封装在一个函数中 如果你需

  • 问题内容: Python在函数的每次调用之间在控制台输出中插入一个空行,但我不希望这样做(即,我希望提示位于控制台中的连续行上,而不是由空行分隔)。有没有办法做到这一点?我试着以为它可能像函数一样工作,但事实并非如此… 码: 输出: 所需的输出: 编辑: 正如其他人在评论部分中指出的那样,除了在Spyder IDE中使用IPython接口之外,这个问题对我来说都是不可重现的。如果有人在Spyder