0
我的Alexa技能中有一個隨機數函數,它使用AMAZON.NUMBER插槽類型,以下顯示的意圖模式。使用用戶輸入時,Javascript函數返回[object Object]
"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它們都顯示爲[對象對象]這意味着我不能做任何與他們的計算,結果將始終爲NaN。
{
"version": "1.0",
"response": {
"shouldEndSession": true,
"outputSpeech": {
"type": "SSML",
"ssml": "<speak> [object Object][object Object] </speak>"
}
},
"sessionAttributes": {}
}
有沒有辦法解決這個問題,因此Num1和Num2有數字值?
您無法將對象轉換爲數字。你將不得不看看這些對象是否包含數字並提取它們。此外,插槽是一個數組,您似乎試圖通過* name *訪問它?這沒有什麼意義... –
請添加日誌以獲取事件json並分享它。在提供解決方案之前,要查看Json結構。 –
響應應該是** this.emit(':tell',speechOutput)**,而不是你有什麼結果。 –