Javascript Alexa 函数 returns [object Object] 接受用户输入时

Javascript Alexa function returns [object Object] when taking user input

我的 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 具有数值?

我搁置了一段时间,想了想这个问题,发现我需要做的就是改变

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

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

这从插槽中获取了值,而不仅仅是插槽类型(这是对象,因此返回了对象对象)。